создание и продвижение сайта (вбиваю в ТОП-10, как гвозди)Настройка и сопровождение платной рекламы яндекс.директ

PHP. Руководство по PHP. 2005

Обращение к функциям через переменныеПред.Глава 17. ФункцииСлед.

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

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

Переменные функции не будут работать с такими языковыми конструкциями как echo(), print(), unset(), isset(), empty(), include(), require() и другими подобными им операторами. Вам необходимо реализовывать свою функцию-обертку (wrapper) для того, чтобы приведенные выше конструкции могли работать с переменными функциями.

Пример 17-13. Работа с функциями посредством переменных

<?

function foo(){

echo "In foo()<br>\n";

}

function bar($arg = '')

{

echo "In bar(); argument was '$arg'.<br>\n";

}

//Функция-обертка для echo

function echoit($string)

{

echo $string;

}

$func = 'foo';

$func(); //Вызывает функцию foo()

$func = 'bar';

$func('test'); //Вызывает функцию bar()

$func = 'echoit';

$func('test'); //Вызыывет функцию echoit()

?>

Вы также можете вызвать методы объекта, используя возможности PHP для работы с переменными функциями.

Пример 17-14. Обращение к методам класса посредством переменных

<?

class Foo

{

function Variable()

{

$name = 'Bar';

$this->$name(); //Вызываем метод Bar()

}

function Bar()

{

echo "This is Bar";

}}

$foo = new Foo();

$funcname = "Variable";

$foo->$funcname(); //Обращаемся к $foo->Variable()

?>

Смотрите также call_user_func(), Переменные переменные и function_exists().

Пред.

Начало

След.

Возврат значений

Уровень выше

Встроенные функции

Отвечу на любые вопросы. С уважением, Дмитрий Владимирович.

Ваше письмо×
Free Web Hosting