Wiki-учебник по веб-технологиям: PHP/Cookies/ПеременныеФункции ...

Главная | |

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


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

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