Змінні функції
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 з параметром "Привіт усім"
?>
У цьому прикладі функція 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
Тому для того, щоб використовувати будь-яку з перерахованих вище функцій як змінну функцію, потрібно створити власну функцію, що ми і зробили в попередньому прикладі.