2017-02-15 1 views
3

PHP 5.6, Apache 2.4 | Windows 7, OpenServer
L'appel anonyme statique PHP ne fonctionne pas

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

Pourquoi cela jette une erreur de syntaxe?

syntax error, unexpected '(' 

Mais http://php.net/manual/en/functions.anonymous.php
PS: Aussi -> appel ne fonctionne pas trop ... (unexpected '->')

+0

Possible duplication de [Création et invocation d'une fonction anonyme dans une seule instruction] (http://stackoverflow.com/questions/3605595/creating-and-invoking-an-anonymous-function-in-a-single-statement –

Répondre

2

est ici le problème. Ce n'est pas la partie statique qui ne fonctionne pas:

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

Il est le déclarant et les appels qui ne fonctionne pas:

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

problème est la documentation dit que la première syntaxe est valide en PHP 5.4+ mais utilise des exemples qui nécessitent PHP 7+ pour fonctionner.

1

Cela ne fonctionne pas dans PHP 5.x

Vous aurez besoin de PHP 7+ pour l'exécuter.

En savoir plus sur ce: https://stackoverflow.com/a/3605701/372172

+1

Étrange comment le manuel semble impliquer qu'il devrait également fonctionner dans 5.4+ – apokryfos