PHP 可变函数

可变函数

PHP 支持可变函数的概念。这意味着如果一个变量名后有圆括号,PHP 将寻找与变量的值同名的函数,并且尝试执行它。可变函数可以用来实现包括回调函数,函数表在内的一些用途。

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

 

Example #1 可变函数示例

<?php
function foo() {
    echo "In foo()<br /> ";
}

function bar($arg = '') {
    echo "In bar(); argument was '$arg'.<br /> ";
}

// 使用 echo 的包装函数
function echoit($string)
{
    echo $string;
}

$func = 'foo';
$func();        // This calls foo()

$func = 'bar';
$func('test');  // This calls bar()

$func = 'echoit';
$func('test');  // This calls echoit()
?>

 

还可以利用可变函数的特性来调用一个对象的方法。

Example #2 可变方法范例

<?php
class Foo
{
    function Variable()
    {
        $name = 'Bar';
        $this->$name(); // This calls the Bar() method
    }

    function Bar()
    {
        echo "This is Bar";
    }
}

$foo = new Foo();
$funcname = "Variable";
$foo->$funcname();   // This calls $foo->Variable()

?>

posted @ 2017-01-10 11:44  天涯海角路  阅读(72)  评论(0)    收藏  举报