Ich habe in letzter Zeit mein PHP-Spiel verstärkt. Aus JavaScript kommend, habe ich festgestellt, dass das Objektmodell ein wenig einfacher zu verstehen ist.PHP-Eigenschaft Zugriff und Dollarzeichen
Ich bin in ein paar Macken geraten, dass ich etwas klären wollte, das ich nicht in der Dokumentation finden kann.
Wenn Klassen in PHP definieren, können Sie Eigenschaften wie so definieren:
class myClass {
public $myProp = "myProp";
static $anotherProp = "anotherProp";
}
Mit der öffentlichen Variable $myProp
wir es zugreifen können (vorausgesetzt, myClass
in einer Variablen referenziert wird genannt $myClass
) $myClass->myProp
ohne den Einsatz des Dollarzeichens.
Wir können nur auf statische Variablen mit ::
zugreifen. So können wir auf die statische Variable wie $myClass::$anotherProp
mit einem Dollarzeichen zugreifen.
Frage ist, warum müssen wir Dollarzeichen mit ::
und nicht ->
??
EDIT
Dies ist Code, den ich arbeiten würde annehmen würde (und tut):
class SethensClass {
static public $SethensProp = "This is my prop!";
}
$myClass = new SethensClass;
echo $myClass::$SethensProp;
Interessant ... Eine Upvote und eine Close-Anfrage. – Sethen
Entschuldigung dafür, hier über [Ihre andere Frage] (http://stackoverflow.com/q/17681253/20578) zu kommentieren (was, wenn ich als eine Reihe von individuellen Fragen gefragt würde, hätte ich persönlich gedacht, wäre gut gewesen - siehe zB http: //stackoverflow.com/questions/15270843/what-does-plus-operator-mean-in-underscore-js), aber etwas wie "Best Practice sagt, dies zu tun" ist ein bisschen bedeutungslos. Wenn Sie nicht erklären können, warum Sie denken, dass etwas eine "Best Practice" ist, woher wissen Sie dann, dass es "das Beste" ist? Verschiedene Dinge sind am besten in verschiedenen Situationen. –
@ PaulD.Waite Es ist in Ordnung. Als Entwickler, der versucht, mit seiner Entwicklung voranzukommen, ist es in meinen Augen akzeptabel, Fragen darüber zu stellen, ob eine bestimmte Bibliothek Best Practices zum Lernen beibringt. Für die Gemeinschaft als Ganzes ist das nicht sehr frustrierend. Ich glaube nicht, dass eine bestimmte Bibliothek mit Best Practices geschrieben wurde, und ich versuche sicherzustellen, dass es etwas ist, was ich nicht falsch mache. Wenn ich also Code beisteuere, kann ich sicher sein, dass es das Beste ist. – Sethen