Переменные функции

PHP поддерживает концепцию переменных функций. Это значит, что если имя переменной заканчивается круглыми скобками, то PHP ищет функцию с таким же именем и пытается ее выполнить.

Пример 1. Использование переменных функций (html, txt)

/* создадим две простые функции: 
Add_sign – добавляет подпись к строке и
Show_text – выводит строку текста */

function Add_sign($string,
$sign="С уважением, Петр"){
echo $string ." ".$sign;
}
function Show_text(){
echo "Отправить сообщение по почте";
}
$func = "Show_text";
// создаем переменную со значением,
// равным имени функции Show_text
$func();
// это вызовет функцию Show_text
$func = "Add_sign";
// создаем переменную со значением,
// равным имени функции Add_sign
$func("Привет всем ");
// это вызовет функцию
// Add_sign с параметром "Привет всем"
?>

В этом примере функция Show_text просто выводит строку текста. Казалось бы, зачем для этого создавать отдельную функцию, если существует специальная функция echo(). Дело в том, что такие функции, как echo(), print(), unset(), include() и т.п. нельзя использовать в качестве переменных функций. То есть если мы напишем:

<?php
$func = "echo ";
$func("TEXT");
?>

то интерпретатор выведет ошибку:

Fatal error: Call to undefined function: 
echo() in
c:usersninatasksfuncvar_f.php on line 2

Поэтому для того, чтобы использовать любую из перечисленных выше функций как переменную функцию, нужно создать собственную функцию, что мы и сделали в предыдущем примере.