Змінні функції

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

Тому для того, щоб використовувати будь-яку з перерахованих вище функцій як змінну функцію, потрібно створити власну функцію, що ми і зробили в попередньому прикладі.