Переменные функции
PHP поддерживает концепцию переменных функций. Это значит, что если имя переменной заканчивается круглыми скобками, то PHP ищет функцию с таким же именем и пытается ее выполнить.
<?
/* создадим две простые функции:
Add_sign – добавляет подпись к строке и
Show_text – выводит строку текста */
function Add_sign($string,
$sign="С уважением, Петр"){
echo $string ." ".$sign;
}
function Show_text(){
echo "Отправить сообщение по почте<br>";
}
$func = "Show_text";
// создаем переменную со значением,
// равным имени функции Show_text
$func();
// это вызовет функцию Show_text
$func = "Add_sign";
// создаем переменную со значением,
// равным имени функции Add_sign
$func("Привет всем <br>");
// это вызовет функцию
// Add_sign с параметром "Привет всем"
?>
Пример 5.11. Использование переменных функций
В этом примере функция Show_text просто выводит строку текста. Казалось бы, зачем для этого создавать отдельную функцию, если существует специальная функция echo(). Дело в том, что такие функции, как echo(), print(), unset(), include() и т.п. нельзя использовать в качестве переменных функций. То есть если мы напишем:
<?
$func = "echo ";
$func("TEXT");
?>
то интерпретатор выведет ошибку:
Fatal error: Call to undefined function:
echo() in
c:\users\nina\tasks\func\var_f.php on line 2
Поэтому для того, чтобы использовать любую из перечисленных выше функций как переменную функцию, нужно создать собственную функцию, что мы и сделали в предыдущем примере.