PHP变量函数先写我的伪代码。受保护的$模型;公共函数__construct(Category$category){$this->model=$category;}publicfunctiongetLists($request,$isPage='get',$order='created_at',$sort='desc'){返回$this->model->orderBy($order,$sort)->$isPage();在getLists中,有一个$isPage参数。本意是传入get获取所有数据,paginate进行分页。写完之后,感觉哪里不对。按照我们通常的写法,找到所有数据$this->model->orderBy($order,$sort)->get();是这样的,我也没见过用变量代替get()的。在实际运行中,程序正常执行。然后在论坛里问问这种写法。接下来介绍一个概念,《可变函数》。什么是可变函数?PHP支持可变函数的概念。这意味着如果变量名后有圆括号,PHP将寻找与变量值同名的函数并尝试执行它。理解了这个概念之后,上面的程序就可以解释了。$isPage在程序运行的时候被get替换,$isPage后面有一个括号,那么程序会去寻找同名的函数。然后继续执行。示例:\n";}functionbar($arg=''){echo"Inbar();argumentwas'$arg'.
\n";}$func='foo';$func();//执行foo();命令行输出:Infoo()
$func='bar';$func('test');//执行bar();命令行中的输出:Inbar();argumentwas'test'。
变量函数的语法用于调用对象的方法。$name();//这会调用Bar()方法}functionBar(){echo"ThisisBar";}}$foo=newFoo();$funcname="变量";$foo->$funcname();//Thiscalls$foo->Variable()//命令行执行输出:ThisisBarwhencallingastaticmethod,functioncallsarepreferredoverstaticproperties.变量方法和静态属性示例。Variable()reading$variableinthisscope.示例代码来源php可变量调用地址lostinyou
