PHP变量函数
介绍
如果变量名称的前面带有括号(带有或不带有参数),则PHP解析器将尝试查找名称与变量值相对应的函数并执行该函数。这样的函数称为可变函数。此功能在实现回调,函数表等时很有用。
不能使用诸如include,require,echo等语言构造来构建可变函数。不过,可以使用函数包装器找到一种变通方法。
可变功能示例
在下面的示例中,变量的值与name函数匹配。因此,可以通过在变量前面加上括号来调用该函数
示例
<?php function hello(){ echo "Hello World"; } $var="Hello"; $var(); ?>
输出结果
这将产生以下结果。-
Hello World
这是带有参数的变量函数的另一个示例
示例
<?php function add($x, $y){ echo $x+$y; } $var="add"; $var(10,20); ?>
输出结果
这将产生以下结果。-
30
在以下示例中,要输入的功能名称由用户输入
示例
<?php function add($x, $y){ echo $x+$y; } function sub($x, $y){ echo $x-$y; } $var=readline("enter name of function: "); $var(10,20); ?>
输出结果
这将产生以下结果。-
enter name of function: add 30
可变方法示例
变量函数的概念可以扩展到类中的方法
示例
<?php class myclass{ function welcome($name){ echo "Welcome $name"; } } $obj=new myclass(); $f="welcome"; $obj->$f("Amar"); ?>
输出结果
这将产生以下结果。-
Welcome Amar
静态方法也可以通过可变方法技术来调用
示例
<?php class myclass{ static function welcome($name){ echo "Welcome $name"; } } $f="welcome"; myclass::$f("Amar"); ?>
输出结果
现在这将引发异常,如下所示:
Welcome Amar