🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
PHP 支持可变函数的概念。这意味着如果一个变量名后有圆括号,PHP 将寻找与变量的值同名的函数,并且尝试执行它。可变函数可以用来实现包括回调函数,函数表在内的一些用途。 变量函数不能用于语言结构,例如 echo, print, unset(), isset(), empty(), include, require 以及类似的语句。需要使用自己的包装函数来将这些结构用作变量函数。 编辑`/home/project/variable.php` ~~~php <?php class Test { public static $actionB = "property B"; public function actionA() { echo "method A"; } public static function actionB() { echo "method B"; } } function sayHi() { echo "Hi".PHP_EOL; } function sayHello($word = '') { echo "Hello $word"; } $func = 'sayHi'; $func(); $func = 'sayHello'; $func('World'); $func = 'actionA'; (new Test())->$func(); echo Test::$actionB; $actionB = 'actionB'; Test::$actionB(); ~~~ 执行 ~~~bash php variable.php ~~~ 从结果可以看出 * 可以用可变函数的语法来调用一个对象方法和静态方法。 * 静态方法调用优先级高于属性调用