PHP可变函数

PHP 中支持可变函数的概念(也叫变量函数),可以这样理解,如果一个变量名后有小括号( ),那么 PHP 就会寻找与变量值同名的函数并执行它。也就是说如果给一个变量赋不同的值,程序就会调用不同的函数。

需要注意的是,可变函数不能直接用于例如 echo、print、unset()、isset()、empty()、include、require 以及类似的语言结构,需要使用自己包装的函数来将这些结构用作可变函数。

可变函数的语法如下所示:

$name();

其中,$name 为一个变量,后面的小括号 ( ) 与调用函数时函数名后的小括号功能相同。

【示例】下面使用可变函数来调用不同的函数,并输出不同的语句。
<?php
    function website(){
        echo '新宝库<br>';
    }
    function url($str = ''){
        echo $str.'<br>';
    }
    function title($string){
        echo $string;
    }

    $funcname = 'website';
    $funcname();
    $funcname = 'url';
    $funcname('https://www.xinbaoku.com/php/');
    $funcname = 'title';
    $string = 'PHP 教程';
    $funcname($string);
?>
运行结果如下:

新宝库
https://www.xinbaoku.com/php/
PHP 教程

上面的示例中,同样都是在调用 $funcname() 函数,随着变量值的变化而调用了不同的函数,并输出了不同的语句,这就是可变函数的一个简单的使用示例。