Hat jemand eine T_PAAMAYIM_NEKUDOTAYIM
?
u
. Es sollte sein T_PAAMAYIM_NEKUDOTAYIM
. ( PAAMAYIM
= "zweimal", NEKUDOTAYIM
= :
= "נקודותיים")
Hat jemand eine T_PAAMAYIM_NEKUDOTAYIM
?
u
. Es sollte sein T_PAAMAYIM_NEKUDOTAYIM
. ( PAAMAYIM
= "zweimal", NEKUDOTAYIM
= :
= "נקודותיים")
Antworten:
Es ist der Doppelpunkt-Operator ::
(siehe Liste der Parser-Token ).
var_dump(empty(TRUE))
foreach($cats as cat
einzig akzeptables Zeichen nach dem cat
für eine syntaktisch gültige Anweisung haben, a ist ::
, da Sie damit eine statische Eigenschaft einer aufgerufenen Klasse angeben können cat
. Wenn in der cat
Klasse beispielsweise ein öffentliches statisches Mitglied aufgerufen wird $mouse
, foreach($cats as cat::$mouse)
ist dies vollkommen gültig php
, aber eine Anweisung mit etwas anderem als ::
dem cat
wäre ein Syntaxfehler. Wenn Sie $mouse
keine deklarierte Eigenschaft cat
wären, würden Sie einen schwerwiegenden Fehler erhalten, aber immer noch keinen Syntaxfehler.
Google wirkt Wunder.
Es ist hebräisch für "Doppelpunkt".
Es ist ein Name für den ::
Operator in PHP. Es bedeutet wörtlich "Doppelpunkt". Aus irgendeinem Grund nannten sie es auf Hebräisch. Überprüfen Sie Ihre Codesyntax und geben Sie ::
gegebenenfalls ein :-)
Aus Wikipedia :
In PHP wird der Operator für die Bereichsauflösung auch Paamayim Nekudotayim (hebräisch: פעמיים נקודתיים) genannt, was auf Hebräisch „Doppelpunkt“ bedeutet.
Der Name "Paamayim Nekudotayim" wurde in der von Israel entwickelten Zend Engine 0.5 eingeführt, die in PHP 3 verwendet wird. Obwohl er für viele Entwickler, die kein Hebräisch sprechen, verwirrend war, wird er in PHP 5 immer noch verwendet, wie in dieser Beispielfehlermeldung ::
$ php -r :: Analysefehler: Syntaxfehler, unerwartetes 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 :: Analysefehler: Syntaxfehler, unerwartetes '::' (T_PAAMAYIM_NEKUDOTAYIM)
Aus der offiziellen PHP-Dokumentation :
Der Scope Resolution Operator (auch Paamayim Nekudotayim genannt) oder einfacher gesagt der Doppelpunkt ist ein Token, das den Zugriff auf statische, konstante und überschriebene Eigenschaften oder Methoden einer Klasse ermöglicht.
Verwenden Sie den Namen der Klasse, wenn Sie von außerhalb der Klassendefinition auf diese Elemente verweisen.
Ab PHP 5.3.0 ist es möglich, die Klasse mithilfe einer Variablen zu referenzieren. Der Wert der Variablen kann kein Schlüsselwort sein (z. B. self, parent und static).
Paamayim Nekudotayim scheint zunächst eine seltsame Wahl für die Benennung eines Doppelpunkts zu sein. Beim Schreiben der Zend Engine 0.5 (die PHP 3 unterstützt) hat das Zend-Team jedoch beschlossen, sie so zu nennen. Es bedeutet eigentlich Doppelpunkt - auf Hebräisch!
Dies kommt auch, wenn Sie eine Konstante in PHP auf die Funktion empty () anwenden:
if (!empty(SOME_CONSTANT)) {
}
Das war mein Fall. Ich habe es damit gelöst:
$string = SOME_CONSTANT;
if (!empty($string)) {
}
Ich kenne Hebräisch ziemlich gut. Um den Namen "Paamayim Nekudotayim" für Sie zu verdeutlichen, lautet die umschriebene Bedeutung "Doppelpunkt", aber wörtlich übersetzt:
::
"zwei Mal, zwei Punkte" oder mehr allgemein bekannt als Scope Resolution Operator .Für mich geschah dies innerhalb einer Klassenfunktion.
In PHP 5.3 und höher $this::$defaults
funktionierte gut; Als ich den Code in einen Server ausgetauscht habe, der aus irgendeinem Grund eine niedrigere Versionsnummer hatte, wurde dieser Fehler ausgelöst.
In meinem Fall bestand die Lösung darin, das Schlüsselwort self
anstelle von $this
:
self::$defaults
funktioniert gut.
$this
, oder was passiert ist Sie ?