7.7: Динамический вызов функций в PHP
Главная Страница » Книги по PHP » Самоучитель PHP 5 для чайников с примерами » Динамический вызов функций
В РНР имеется возможность использовать вместо имени функции переменные (листинг 7.15).
Листинг 7.15. Динамический вызов функции.
‹html›
‹head›
‹title›Динамический вызов функции‹/title›
‹/head›
‹body›
‹?php
function error_msg ($err_str)
{
echo "‹b›Ошибка!‹br›Причина: $err_str‹/b›";
}
$start_function = "error_msg";
$start_function("Bы ввели отрицательное число");
?›
‹/body›
‹/html›
Такой вызов функции называют динамическим. Эта программа выполнит такие же действия, как при вызове функции error_msg(). На первый взгляд эта особенность РНР может показаться, мягко говоря, излишней. Однако динамический вызов функции часто применяется в случаях, когда нужно выяснить какую функцию выполнять при определенных условиях (листинг 7.16).
Листинг 7.16. Использование динамического вызова функций.
‹html›
‹head›
‹title›Использование динамического вызова функций‹/title›
‹/head›
‹body›
‹?php
function error_msg ($err_str)
{
echo "‹b›Error!‹br›Text: $err_str‹/b›";
}
function warring_msg ($war_str)
{
echo "‹b›Warring!‹br›Text: $war_str‹/b›";
}
function information_msg ($inf_str)
{
echo "‹b›Information!‹br›Text: $inf_str‹/b›";
}
$type_msg = "err";
$msg = "вы ввели отрицательное число";
switch ($type_msg)
{
case "err" : $start_function = "error_msg";
break;
case "war" : $start_function = "warring_msg";
break;
case "inf" : $start_function = "information_msg";
break;
}
$start_function($msg);
?›
‹/body›
‹/html›