php执行类的方法为变量的方法

By | 2020年8月13日

以自认为的实现让方法为变量的方法执行起来,我一开始使用的方法,可能和大家一样的:

$n=new demoClass();
$func="fanc()";  //或者$func="func";$run=$func.'()';
$n->$func;

是不是感觉上面的代码没毛病?我也是这么认为的,但是执行起来却报错,不能执行;那么正确的方法应该如何去写能,经过我多次的尝试,找到了正确写法:

$n=new demoClass();
$func="fanc";
$n->$func();

以上就可以正确执行了,直接在变量后面加上括号,并且不加任何连接符及双引号或单引号就可以了;当然了,你是在执行变量方法,在执行之前需要判断这个类方法是否存在:

$func=p("g.pg");
if(method_exists($this,$func)){
   $this->$func();
}

上面代码用到了method_exists函数方法,判断当前类下是否存在这个方法,其中第一个参数“$this”就是当前类。

发表评论

电子邮件地址不会被公开。 必填项已用*标注