2017-02-15 5 views
3

PHP 5.6, Apache 2.4 | Windows 7, OpenServer
Статический анонимный вызов PHP не работает

(static function() { 
    return true; 
})(); 

Почему это бросает синтаксическую ошибку?

syntax error, unexpected '(' 

Но http://php.net/manual/en/functions.anonymous.php
PS: Также -> вызов не работает слишком ... (неожиданный '->')

+0

Возможный дубликат [Создание и вызов анонимной функции в одном заявлении] (http://stackoverflow.com/questions/3605595/creating-and-invoking-an-anonymous-function-in-a-single-statement) –

ответ

2

Вот проблема. Это не статическая часть, которая не работает:

$f = static function() { return true; }; $f(); //Works in PHP 5.4+ 

Это декларирование и призвание, которое не работает:

(static function() { return true; })(); //Works in PHP 7+ 

Проблема документации говорит о том, что первый синтаксис действует в PHP 5.4+ но использует примеры, требующие работы PHP 7+.

1

Это не работает в PHP 5.x

Вам понадобится PHP 7+ для запуска.

Подробнее об этом: https://stackoverflow.com/a/3605701/372172

+1

Странно, как в руководстве, по-видимому, подразумевается, что он также должен работать в версии 5.4+ – apokryfos

Смежные вопросы