PHP attend T PAAMAYIM NEKUDOTAYIM?

est-ce que quelqu'un a un T_PAAMAYIM_NEKUDOTAYIM ?

454
demandé sur John Slegers 2009-02-26 23:34:52

7 réponses

c'est l'opérateur double côlon :: (voir liste des parser tokens ).

294
répondu Gumbo 2017-04-04 03:48:16

Google fonctionne à merveille.

c'est Hébreu pour" double colon".

93
répondu patricksweeney 2015-08-29 07:00:31

c'est un nom pour l'opérateur :: en PHP. Ça signifie littéralement "double côlon". Pour une raison quelconque, ils l'ont appelé en hébreu. Vérifiez votre syntaxe de code, et mettez un :: le cas échéant: -)

50
répondu Ilya Birman 2015-08-29 07:01:01

À Partir De Wikipedia :

en PHP, l'opérateur de résolution de portée est aussi appelé Paamayim Nekudotayim (en hébreu: "deux points"), qui signifie "deux points" en hébreu Hébreu.

le nom" Paamayim Nekudotayim " a été introduit dans le Moteur Zend 0.5 développé par Israël et utilisé en PHP 3. Bien qu'il ait été déroutant pour beaucoup de développeurs qui ne parlent pas hébreu, il est encore être utilisé en PHP 5, comme dans ce message d'erreur type:

$ php-r:: erreur D'analyse: erreur de syntaxe, inattendu T_PAAMAYIM_NEKUDOTAYIM

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

$ php-r :: Parse error: syntax error, unexpected '::' (T_PAAMAYIM_NEKUDOTAYIM)

à Partir de l'officiel de PHP documentation :

L'opérateur de résolution de portée (également appelé Paamayim Nekudotayim) ou termes plus simples, le double du côlon, est un jeton qui permet d'accéder à Propriétés ou méthodes statiques, constantes et dépassées d'une classe.

lorsque vous faites référence à ces articles qui ne font pas partie de la définition de la classe, utilisez le nom de la classe.

à partir de PHP 5.3.0, il est possible de faire référence à la classe en utilisant un variable. La valeur de la variable ne peut pas être un mot-clé (par ex. et statique).

Paamayim Nekudotayim apparaîtrait d'abord comme un choix étrange pour nommer un double-côlon. Cependant, en écrivant le moteur de Zend 0.5 (qui alimente PHP 3), c'est ce que l'équipe de Zend a décidé de l'appeler. Il en fait, ça veut dire double-colon - en hébreu!

42
répondu John Slegers 2016-01-21 02:34:24

cela arrive aussi lorsque vous appliquez une constante en PHP à la fonction empty ():

if (!empty(SOME_CONSTANT)) {

}

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

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

}
8
répondu Max 2015-08-29 07:09:38

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

en PHP 5.3 et au-dessus de $this::$defaults fonctionnait bien; quand j'ai échangé le code dans un serveur qui pour quelque raison que ce soit avait un numéro de version plus bas il a lancé cette erreur.

la solution, dans mon cas, était d'utiliser le mot-clé self au lieu de $this :

self::$defaults fonctionne très bien.

2
répondu bozdoz 2016-07-12 05:29:33

C'est comme ça que je l'ai eu. J'essayais les limites des expressions entre guillemets. Voici donc 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
0
répondu peter 2016-09-30 08:43:41