class MyClass {
var $lambda;
function __construct() {
$this->lambda = function() {echo 'hello world';};
// no errors here, so I assume that this is legal
}
}
$myInstance = new MyClass();
$myInstance->lambda();
//Fatal error: Call to undefined method MyClass::lambda()
Run Code Online (Sandbox Code Playgroud)
那么到达类变量的正确语法是什么?
我希望能够在类的构造函数中动态创建实例方法,如下所示:
class Foo{
function __construct() {
$code = 'print hi;';
$sayHi = create_function( '', $code);
print "$sayHi"; //prints lambda_2
print $sayHi(); // prints 'hi'
$this->sayHi = $sayHi;
}
}
$f = new Foo;
$f->sayHi(); //Fatal error: Call to undefined method Foo::sayHi() in /export/home/web/private/htdocs/staff/cohenaa/dev-drupal-2/sites/all/modules/devel/devel.module(1086) : eval()'d code on line 12
Run Code Online (Sandbox Code Playgroud)
问题似乎是lambda_2函数对象没有在构造函数中绑定到$ this.
任何帮助表示赞赏.
我只想创建像getFieldname()magento 中一样的函数。
例如:
在 Magento 中
getId()ID- 返回字段值
getName()Name- 返回字段值
我怎样才能创建这样的功能?在这种情况下请帮助我..
我想做的就像下面的代码一样,
Class Called{
$list=array();
function __construct() {
$this->list["name"]="vivek";
$this->list["id"]="1";
}
function get(){
echo $this->list[$fieldname];
}
}
$instance=new Called();
$instance->getId();
$instance->getName();
Run Code Online (Sandbox Code Playgroud)