Forum und email
Zmienne funkcje

Zmienne funkcje

PHP obsługuje koncepcję zmiennych funkcji. Oznacza to, że jeśli po nazwie zmiennej występują nawiasy, PHP będzie szukało funkcji o nazwie będącej wartością zmiennej i będzie próbowało wywołać ją. Między innymi może być to użyte do implementacji funkcji callback, tablicy funkcji itp.

Zmienne funkcje nie będą działać z elementami składowymi języka takimi jak echo(), print(), unset(), isset(), empty(), include(), require() i innymi podobnymi. Aby zastosować zmienne funkcje z takimi składowymi, niezbędne jest zastosowanie funkcji obudowujących.

Przykład 17-14. Przykład zmiennej funkcji

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

function
bar($arg = '') {
    echo
"W bar(); argumentem jest '$arg'.<br />\n";
}

// Funkcja obudowująca składnię echo

function echoIt($string) {
    echo
$string;
}

$func = 'foo';
$func(); // wywoła foo()

$func = 'bar';
$func('test'); // wywoła bar()

$func = 'echoIt';
$func('test'); // wywoła echoIt()
?>

Możliwe jest także wywołanie metody obiektu korzystając z mechanizmu zmiennych funkcji. You can also call an object's method by using the variable functions feature.

Przykład 17-15. Przykład zmiennych metod

<?php
class Foo
{
    function
Zmienna()
    {
        
$name = 'Bar';
        
$this->$name(); // Wywoła metodę Bar()
    
}
    
    function
Bar()
    {
        echo
"To jest Bar";
    }
}

$foo = new Foo();
$funkcja = "Zmienna";
$foo->$funkcja();  // Wywoła $foo->Zmienna()

?>

Patrz także call_user_func(), variable variables i function_exists().