为什么我的动态方法usersMethod
不会返回任何结果?
页面总是空的。
<?php
class SampleClass
{
public function __call($name, $args)
{
$m = $this->methods();
eval($m['usersMethod']);
}
public function methods()
{
$methods = array(
'usersMethod'=>'$a=2; return $a;',
'membersMethod'=>'$a=1; return $a;'
);
return $methods;
}
}
$sample = new SampleClass();
echo $sample->usersMethod();
?>
答案 0 :(得分:4)
答案 1 :(得分:2)
您在代码段中有一个return
语句,用作“函数”。但是此返回仅通过eval()发送值。您还需要返回eval结果:
return eval($m['usersMethod']);
只有这样才能通过__call()方法调用返回内部$ a。