1.我的错误代码
class classname{
function __construct(){};
public function test(){return 0;};
}
$c = new classname();
$test = $c->test;
var_dump($test); //out put NULL, I want the method $c->test
我不想执行该功能并存储结果
我的代码有问题。 怎么写呢!
这里是我想要的代码(通过 Bobot ):
$test = function() use ($c) { return $c->test(); };
devmyb 的答案很有帮助,他/她告诉我为什么我的代码不起作用
Bobot , JezEmery , devmyb ......等
感谢您的帮助
答案 0 :(得分:3)
你没有调用该函数,而是试图访问一个属性(找不到)。
$test = $c->test();
这应该有效。
答案 1 :(得分:2)
因为你没有error_reporting
on
,否则你也会收到通知,警告和致命错误
您有印刷错误,请检查更新后的代码
class classname{
function __construct(){} // removed ;
public function test(){return 0;} // removed ;
}
$c = new classname();
$test = $c->test; // You were calling variable of your class
$test1 = $c->test(); // You were calling method of your class i.e. public function test()
var_dump($test);
var_dump($test1);
<强>输出:强>
Notice: Undefined property: classname::$test in /in/HBNf9 on line 9
NULL
int(0)
答案 2 :(得分:2)
你的问题不清楚,但我想你想这样做:
$test = function() use ($c) { return $c->test(); };
然后,当您需要运行方法时,只需运行函数:$test();
我想some documentation about anonymous functions可以帮助您理解代码。
答案 3 :(得分:1)
这是正确的代码。函数为no之后;
class classname {
function __construct(){
}
public function test() {
return 0;
}
}
$c = new classname();
$test = $c->test;