лямбда — статический анонимный вызов PHP не работает

PHP 5.6, Apache 2.4 | Windows 7, OpenServer

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

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

syntax error, unexpected '('

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

3

Решение

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

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

Это объявление и вызов не работает:

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

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

2

Другие решения

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

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

Узнайте больше об этом: https://stackoverflow.com/a/3605701/372172

1