почему я не могу определить элемент массива php как анонимную функцию? - PullRequest
1 голос
/ 17 января 2011

почему это не работает?

$arr=array(
7,
'h',
function($text){echo $text;}
);

$arr[2]('some text');

Я хочу, чтобы он повторил 'некоторый текст', но он говорит, что есть неожиданный T_FUNCTION.

Ответы [ 2 ]

3 голосов
/ 17 января 2011

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

2 голосов
/ 17 января 2011

Действительно, похоже, это правильный ответ. Я не был уверен, что функция в синтаксисе массива будет работать (даже в PHP 5.3.x), поэтому я только что протестировал ее и, похоже, она работает:

<?php
echo phpversion( ) . ": ";
$foo = array( 
    'test' => function( ) {
        return 'This is my test.';
    }
);

echo $foo['test']( );
?>

Что выводит (на моей машине, конечно):

5.3.2-1ubuntu4.7: Это мой тест.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...