PHP obsługuje opcję funkcji zmiennych. Oznacza to, że jeśli do nazwy zmiennej dodane są nawiasy, PHP postara się znaleźć funkcję o nazwie takiej jak wartość zmiennej i spróbuje ją wykonać. Między innymi, może to służyć do zaimplementowania tzw. callbacks, tablic funkcji, a także wielu innych rzeczy.
Funkcje zmiennych nie zadziałają z takimi elementami języka jak echo, print, unset(), isset(), empty(), include, require i podobnymi. Używaj okrężnych funkcji aby skorzystać z któregoś z powyższych elementów języka jako funkcji zmiennych.
Przykład #1 Przykład funkcji zmiennych
<?php
function foo() {
echo "W foo()<br />\n";
}
function bar($arg = '')
{
echo "W bar(); argumentem było '$arg'.<br />\n";
}
// To jest funkcja okrężna dla "echo"
function echoit($string)
{
echo $string;
}
$func = 'foo';
$func(); // Wywołuje foo()
$func = 'bar';
$func('test'); // Wywołuje bar()
$func = 'echoit';
$func('test'); // Wywołuje echoit()
?>
Jako funkcje zmiennych mogą być także wywoływane metody obiektów.
Przykład #2 Przykład metod zmiennych
<?php
class Foo
{
function Zmienna()
{
$name = 'Bar';
$this->$name(); // Wywołuje metodę Bar()
}
function Bar()
{
echo "To jest Bar";
}
}
$foo = new Foo();
$funcname = "Zmienna";
$foo->$funcname(); // Wywołuje $foo->Zmienna()
?>
Zobacz także call_user_func(), zmienne zmienne oraz function_exists().