PHP поддерживает концепцию функций переменных. Это значит, что, если имя переменной содержит скобки, присоединённые к нему, PHP ищет функцию с тем же именем, в которое вычисляется переменная, и пытается выполнить её. Помимо прочего, это можно использовать для реализации callbacks/обратных вызовов, таблиц функций и так далее.
Функции переменных не работают с такими конструкциями языка, как echo(),
unset(), isset(), empty() и
include(). Хотя конструкция print() является исключением и будет работать.
Это одно из самых важных отличий функций и конструкций языка в PHP.
Пример 12-1. Функция переменной
<?php
function foo()
{
echo "In foo()<br>
";
}
function bar($arg = ’’)
{
echo "In bar(); argument was ’$arg’.<br>
";
}
$func = ’foo’;
$func();
$func = ’bar’;
$func(’test’);
?>