PHP скрипты

MySQL

Apache

phpMyADmin

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›

Поделиться с друзьями