belarusweb.net
© Петр Романовский Минск, 2016-2017.



belarusweb.net

Основы создания сайтов...
PHP+MySQL >>>
                          Учебник Задачник Справочник

5.5. Обращение к функциям через переменные

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

<?php
function my_func($a){
  echo 'Таймер установлен на '.$a.' секунд.';
}
$set_time='my_func'; //Теперь можно вызывать функцию my_func() при помощи  
						   //переменной $set_time, которая хранит имя указанной 
						   //функции в виде строки
$set_time(5);        //Выведет строку 'Таймер установлен на 5 секунд.'
?>

Пример 5.15. Обращение к функциям через переменные

Отметим, что переменные функции не будут работать со встроенными языковыми конструкциями или функциями вроде echo или unset(). В таких случаях следует создавать свои функции-обертки, которые позволят работать со встроенными конструкциями наподобие пользовательских функций (см. пример 5.16).

<?php
function my_echo($str){		//Функция-обертка для echo
  echo $str;
}
$my_func = 'my_echo';
$my_func('test');  			//Вызывает функцию my_echo()
?>

Пример 5.16. Обращение к встроенным функциям через переменные при помощи функций-оберток

Контрольные вопросы и задания

  1. Опишите концепцию переменных функций в PHP.

Словарь новых английских слов

function [ˈfʌŋ(k)ʃ(ə)n] – функция.
return [rɪˈtəːn] – возвращать.
argument [ˈɑːɡjʊm(ə)nt] – аргумент.
closure [ˈkləʊʒə] – замыкание.
Комментарии (0)
Петр Романовский
1. Приветствуются комментарии, которые содержат дополнения к материалу текущей страницы, а также ваши ответы на вопросы других пользователей.
2. Если вам что-то непонятно - спрашивайте, не забывая написать, что именно и с какого места.
Показаны все комментарии
Чтобы оставить свой комментарий, авторизуйтесь, пожалуйста!    
     
belarusweb.net © Петр Романовский, Минск, 2016-2017.
Связаться с автором
Наверх