Hat jemand ein T_PAAMAYIM_NEKUDOTAYIM
?
Nicht wirklich. Teste dies var_dump(empty(TRUE))
Hat jemand ein T_PAAMAYIM_NEKUDOTAYIM
?
Es ist der Doppelpunktoperator ::
(siehe Liste der Parser-Token).
Nein. Ich habe nur eine Bewertung hinzugefügt, die dasselbe T_PAAMAYIM_NEKUDOTAYIM zurückgibt. Ich habe es versehentlich gefunden.
Es wird angezeigt, wenn $ aus der Variablen fehlt. Ich habe es heute bekommen und diesen Beitrag erreicht. In einem foreach($cats as cat) dann zeigt die Verwendung der gleichen cat in der nächsten Zeile den Fehler. Aber die Antwort sagt etwas über :: aus und die Person hat es akzeptiert....??
Es ist Hebräisch für "Doppelpunkt".
Funktionen sind auf Englisch, aber dieser Fehler ist auf Hebräisch. Ich bin mir nicht sicher, ob andere Fehler auch auf Hebräisch sind.
Die hervorgehobene Zeichenfolge lautet. Von nun an werde ich nur noch meine benutzerdefinierte array_push Funktion _ in Hebräischen Zeichen verwenden, natürlich. Ich bin sicher, dass alle meine nicht-hebräisch sprechenden Kollegen es lieben werden. Fast unser gesamtes Entwicklerteam spricht mindestens eine Sprache, die in nicht-lateinischen Zeichen geschrieben ist. Sollte Spaß machen :)
@Ilya Birman Es bedeutet nicht wörtlich "doppelter Doppelpunkt"; es bedeutet buchstäblich "zweimal, doppelter Punkt"
Von Wikipedia:
In PHP wird der Bereichsauflösungsoperator auch Paamayim Nekudotayim genannt, was auf Hebräisch " " bedeutet und "Doppelpunkt" bedeutet.
Der Name "Paamayim Nekudotayim" wurde in der von Israelis entwickelten Zend Engine 0.5 eingeführt, die in PHP 3 verwendet wurde. Obwohl es für viele Entwickler, die kein Hebräisch sprechen, verwirrend war, wird es immer noch in PHP 5 verwendet, wie in dieser Beispielfehlermeldung:
$ php -r :: Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM
Ab PHP 5.4 enthalten Fehlermeldungen bezüglich des Bereichsauflösungsoperators immer noch diesen Namen, haben jedoch seine Bedeutung etwas klargestellt:
$ php -r :: Parse error: syntax error, unexpected '::' (T_PAAMAYIM_NEKUDOTAYIM)
Von der offiziellen PHP-Dokumentation:
Der Bereichsauflösungsoperator (auch Paamayim Nekudotayim genannt) oder in einfacheren Begriffen der Doppelpunkt, ist ein Token, das den Zugriff auf statische, konstante und überschriebene Eigenschaften oder Methoden einer Klasse ermöglicht.
Wenn auf diese Elemente außerhalb der Klassendefinition verwiesen wird, verwenden Sie den Klassennamen.
Ab PHP 5.3.0 ist es möglich, auf die Klasse unter Verwendung einer Variablen zu verweisen. Der Wert der Variablen kann kein Schlüsselwort sein (z.B. self, parent und static).
Paamayim Nekudotayim würde zunächst wie eine seltsame Wahl für die Benennung eines Doppelpunkts erscheinen. Beim Schreiben der Zend Engine 0.5 (die PHP 3 antreibt) entschied sich das Zend-Team jedoch dafür, es so zu nennen. Es bedeutet tatsächlich Doppelpunkt - auf Hebräisch!
Es handelt sich tatsächlich um umgangssprachliches Hebräisch. Wikipedia sagt jetzt: "In PHP wird der Bereichsauflösungsoperator auch Paamayim Nekudotayim (Hebräisch: , ausgesprochen [paamajim nkudotajim], wobei das zweite Wort eine umgangssprachliche Verfälschung von , das [nkudatajim] ausgesprochen wird), genannt, was auf Hebräisch „doppelter Doppelpunkt“ bedeutet."
Ich kenne Hebräisch ziemlich gut, also um den Namen "Paamayim Nekudotayim" für dich zu klären, ist die sinngemäße Übersetzung "doppelter Doppelpunkt", aber wörtlich übersetzt:
::
"zweimal, zwei Punkte" oder bekannter als der Scope Resolution Operator.
Was meinen Sie mit "Punkten, die wie Vokale im Englischen funktionieren"? Die "Nekudot" hier repräsentieren die beiden Punkte, aus denen ein Doppelpunkt (:) besteht. Beziehen Sie sich auf Niqqud? Dieses Konzept ist nicht verwandt, obwohl beide Wörter die gleiche Wurzel haben.
Auch der Suffix "-ayim" bedeutet zweimal, "Paam" bedeutet Mal. Also bedeutet "Paamayim" zweimal oder zweimal. "Nekuda" ist ein Punkt, und "Nekudot" ist der Plural von "Nekuda" - viele Punkte. Hier bedeutet der Suffix "-ayim" wieder "zweimal". Also bekommen wir: Zweimal viele Punkte zweimal - ergibt nicht viel Sinn... Der Grund dafür ist, dass "Nekudotaym" tatsächlich die falsche Schreibweise und Aussprache des Wortes ist. Es handelt sich um einen Fehler, der von den PHP-Entwicklern gemacht wurde. Es sollte "Nekudatayim" sein - was bedeutet, zweimal ein "Nekuda" oder zwei Punkte. Also bedeutet es tatsächlich: Zweimal zwei Punkte, was viel mehr Sinn macht.
@Sipo Ich versuchte, die technischen Details zu vermeiden. Nekudot () sind Vokale. In Bezug auf deinen zweiten Punkt, der Tippfehler im Wort ist ein weiteres nicht zusammenhängendes Problem mit der Fehlermeldung.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
26 Stimmen
Manchmal ist dies die Art und Weise von PHP, Ihnen zu sagen, dass Ihnen ein $-Zeichen fehlt... zum Beispiel, wenn Sie _SESSION["foo"] anstelle von $_SESSION["foo"] schreiben.
0 Stimmen
Ich weiß, das ist eine alte Frage, aber die kurze Antwort ist, dass PHP eine Konstante als Klassenname (falsch) interpretiert. Einige Operationen, wie
empty
, werten Ausdrücke nicht aus, die Konstanten enthalten. Daher versuchen sie, eine Konstante als Klassenname zu interpretieren und erwarten, dass sie ein::
hat, um eine statische Eigenschaft anzugeben. Und natürlich, wenn Sie das$
bei einer Variablen vergessen, wird es als Konstante fehlinterpretiert. Vieles von diesem Wahnsinn, wenn auch nicht die Fehlermeldung, wird in späteren Versionen von PHP behoben.