Функции
PHP Manual

Променливи функции

PHP поддържа концепцията за променливи функции. Това означава, че ако дадена променлива има скоби в края си, PHP ще потърси за функция с име - стойността на променливата и ще се опита да я изпълни. Освен за друго, това може да бъде използвано и с цел осъществяване на обратни извиквания, функционални таблици и други.

Променливите функции няма да работят с езикови конструкции като echo(), print(), unset(), isset(), empty(), include(), require() и други от този род. Използвайте функции-опаковки, за да можете да използвате някоя от тези езикови конструкции като променлива функция.

Example #1 Пример за променлива функция

<?php
function foo() {
    echo 
"Във foo()<br />\n";
}

function 
bar($arg '')
{
    echo 
"В bar(); аргументът беше '$arg'.<br />\n";
}

// Това е функция-опаковка на echo
function echoit($string)
{
    echo 
$string;
}

$func 'foo';
$func();        // Това извиква foo()

$func 'bar';
$func('test');  // Това извиква bar()

$func 'echoit';
$func('test');  // Това извиква echoit()
?>

Методите на обекти също могат да бъдат извиквани посредством синтаксиса за променливи функции.

Example #2 Пример за променлив метод

<?php
class Foo
{
    function 
Variable()
    {
        
$name 'Bar';
        
$this->$name(); // Това извиква метода Bar()
    
}
    
    function 
Bar()
    {
        echo 
"Това е Bar";
    }
}

$foo = new Foo();
$funcname "Variable";
$foo->$funcname();  // Това извиква $foo->Variable()

?>

Вж. също call_user_func(), променливи променливи и function_exists().


Функции
PHP Manual