Quelqu'un en a-t-il un T_PAAMAYIM_NEKUDOTAYIM
?
u
. Ça devrait l'être T_PAAMAYIM_NEKUDOTAYIM
. ( PAAMAYIM
= "deux fois", NEKUDOTAYIM
= :
= "נקודותיים")
Quelqu'un en a-t-il un T_PAAMAYIM_NEKUDOTAYIM
?
u
. Ça devrait l'être T_PAAMAYIM_NEKUDOTAYIM
. ( PAAMAYIM
= "deux fois", NEKUDOTAYIM
= :
= "נקודותיים")
Réponses:
Il s'agit de l'opérateur à deux points ::
(voir la liste des jetons de l'analyseur ).
var_dump(empty(TRUE))
foreach($cats as cat
seul caractère acceptable après le cat
pour une instruction syntaxiquement valide, c'est a ::
, car cela vous permettrait de spécifier une propriété statique d'une classe appelée cat
. Par exemple, si la cat
classe a un membre statique public appelé $mouse
, alors foreach($cats as cat::$mouse)
est parfaitement valide php
, mais une déclaration avec autre chose ::
qu'après le cat
serait une erreur de syntaxe. Si vous $mouse
n'étiez pas une propriété déclarée, cat
vous obtiendriez une erreur fatale, mais toujours pas une erreur de syntaxe.
Google fait des merveilles.
C'est l' hébreu pour "double colon".
C'est un nom pour l' ::
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-en un le ::
cas échéant :-)
De Wikipédia :
En PHP, l'opérateur de résolution de portée est également appelé Paamayim Nekudotayim (hébreu: פעמיים נקודתיים), ce qui signifie «double colon» en hébreu.
Le nom "Paamayim Nekudotayim" a été introduit dans le moteur israélien Zend Engine 0.5 utilisé en PHP 3. Bien qu'il ait été source de confusion pour de nombreux développeurs qui ne parlent pas l'hébreu, il est toujours utilisé en PHP 5, comme dans cet exemple de message d'erreur :
$ php -r :: Erreur d'analyse: erreur de syntaxe, T_PAAMAYIM_NEKUDOTAYIM inattendu
Depuis PHP 5.4, les messages d'erreur concernant l'opérateur de résolution de portée incluent toujours ce nom, mais ont quelque peu clarifié sa signification:
$ php -r :: Erreur d'analyse: erreur de syntaxe, inattendu '::' (T_PAAMAYIM_NEKUDOTAYIM)
De la documentation officielle PHP :
L'opérateur de résolution d'étendue (également appelé Paamayim Nekudotayim) ou, en termes plus simples, le double signe deux points, est un jeton qui permet d'accéder aux 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 classe, utilisez le nom de la classe.
Depuis PHP 5.3.0, il est possible de référencer la classe à l'aide d'une variable. La valeur de la variable ne peut pas être un mot-clé (par exemple self, parent et static).
Paamayim Nekudotayim semblerait, au premier abord, un choix étrange pour nommer un double-colon. Cependant, lors de l'écriture du Zend Engine 0.5 (qui alimente PHP 3), c'est ce que l'équipe Zend a décidé de l'appeler. Cela signifie en fait double-colon - en hébreu!
Cela arrive également lorsque vous appliquez une constante en 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)) {
}
Je connais assez bien l'hébreu, donc pour clarifier le nom de "Paamayim Nekudotayim" pour vous, le sens paraphrasé est "double colon", mais traduit littéralement:
::
signifie « deux fois, deux points », ou plus communément appelé Opérateur de résolution d'étendue .Pour moi, cela s'est produit 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, était d'utiliser le mot-clé self
au lieu de $this
:
self::$defaults
fonctionne très bien.
$this
, ou ce qui est arrivé à vous ?