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: также -> вызов не работает слишком … (неожиданный ‘->’)
Здесь проблема. Это не статическая часть, которая не работает:
$f = static function () { return true; }; $f(); //Works in PHP 5.4+
Это объявление и вызов не работает:
(static function () { return true; })(); //Works in PHP 7+
Проблема в том, что в документации говорится, что первый синтаксис действителен в PHP 5.4+, но использует примеры, для работы которых требуется PHP 7+.
Это не работает в PHP 5.x
Вам понадобится PHP 7+ для его запуска.
Узнайте больше об этом: https://stackoverflow.com/a/3605701/372172