Php 使用动态方法
为什么我的动态方法Php 使用动态方法,php,Php,为什么我的动态方法usersMethod不返回任何结果? 页面总是空的 <?php class SampleClass { public function __call($name, $args) { $m = $this->methods(); eval($m['usersMethod']); } public function methods() { $methods = array(
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();
?>
您需要返回以下值:
(请参阅)在代码段中有一个
return
语句,将用作“函数”。但此返回仅通过eval()发送值。您还需要返回评估结果:
return eval($m['usersMethod']);
只有这样,内部$a才会通过调用方法返回。您应该真正更改
\u call()
以使用传入的名称和参数,而不是硬编码。
return eval($m['usersMethod']);