Question PHP attend T_PAAMAYIM_NEKUDOTAYIM?


Est-ce que quelqu'un a un T_PAAMAYIM_NEKUDOTAYIM?


450
2018-02-26 20:34


origine


Réponses:


C'est l'opérateur double colon :: (voir liste des jetons d'analyseur).


290
2018-02-26 20:36



Google fait des merveilles.

Ses hébreu pour "double colon".


94
2018-02-26 20:37



C'est un nom pour le :: opérateur en PHP. Cela signifie littéralement "double colon". Pour une raison quelconque, ils l'ont nommé en hébreu. Vérifiez la syntaxe de votre code et mettez un :: le cas échéant :-)


48
2018-02-26 20:37



De Wikipédia:

En PHP, l'opérateur de résolution de portée est également appelé Paamayim   Nekudotayim (hébreu: פעמיים נקודתיים), qui signifie "double-colon" dans   Hébreu.

Le nom "Paamayim Nekudotayim" a été introduit dans le   Zend Engine 0.5 développé en Israël et utilisé en PHP 3. Bien qu'il ait été   déroutant pour de nombreux développeurs qui ne parlent pas l'hébreu, il est encore   étant utilisé dans PHP 5, comme dans cet exemple de message d'erreur:

$ php -r :: Erreur d'analyse: erreur de syntaxe, inattendue   T_PAAMAYIM_NEKUDOTAYIM

Depuis PHP 5.4, les messages d'erreur concernant l'opérateur de résolution de portée   toujours inclure ce nom, mais ont clarifié sa signification quelque peu:

$ php -r :: Erreur d'analyse: erreur de syntaxe, inattendue '::'   (T_PAAMAYIM_NEKUDOTAYIM)

De la documentation PHP officielle:

L'opérateur de résolution de portée (également appelé Paamayim Nekudotayim) ou dans   termes plus simples, le double-point, est un jeton qui permet l'accès à   propriétés ou méthodes statiques, constantes et remplacées d'une classe.

Lorsque vous référencez ces éléments en dehors de la définition de la classe, utilisez   le nom de la classe.

Depuis PHP 5.3.0, il est possible de référencer la classe en utilisant un   variable. La valeur de la variable ne peut pas être un mot clé (par exemple, self, parent   et statique).

Paamayim Nekudotayim serait, au premier abord, un choix étrange pour   nommer un double-deux-points. Cependant, en écrivant le Zend Engine 0.5   (qui alimente PHP 3), c'est ce que l'équipe Zend a décidé de l'appeler. Il   signifie réellement double-colon - en hébreu!


39
2018-03-13 20:52



Cela arrive aussi lorsque vous appliquez une constante dans PHP à la fonction empty ():

if (!empty(SOME_CONSTANT)) {

}

C'était mon cas. Je l'ai résolu en utilisant ceci:

$string = SOME_CONSTANT;
if (!empty($string)) {

}

8
2017-11-21 21:19



Pour moi, c'est arrivé dans une fonction de classe.

En PHP 5.3 et supérieur $this::$defaults a bien fonctionné; lorsque j'ai échangé le code sur un serveur qui, pour une raison quelconque, avait un numéro de version inférieur, il a jeté cette erreur.

La solution, dans mon cas, consistait à utiliser le mot-clé self au lieu de $this:

self::$defaults fonctionne très bien.


2
2017-07-12 05:29



C'est comme ça que je l'ai eu. J'essayais les limites des expressions entre guillemets. Donc c'est le code:

Code

$a = 5;

echo "{$a == 5 ? 'yes' : 'no'} its possible";

Sortie

  PHP Parse error:  syntax error, unexpected '==' (T_IS_EQUAL), expecting :: (T_PAAMAYIM_NEKUDOTAYIM) in php shell code on line 1

1
2017-09-30 08:43