PHP ruft Array-Werte mit dem Dash-Pfeil "- & gt;"
Ich habe mit PHP eine ganze Weile jetzt, aber nie eine fortgeschrittene Programmierer. Ich fühle mich wie diese dumme Frage, aber nie verstanden, warum einige array-Werte können abgerufen werden, mit verschiedenen Methoden:
:
$array->value
eher als normal:
$array['value']
Standard $array['Wert'] funktioniert immer, aber der eine mit der -> Methode nicht mal. Warum ist das so?
Hier ist ein Beispiel. Ich bin mit dem Zend Framework 2 und ich kann schnappen Sie sich einen session-Wert mit der -> Methode:
$this->session->some_value
Jedoch kann ich nicht, wenn ich ein neues, normales array:
$array = array('some_value' => 'myvalue');
$array['some_value']; //works!!
$array->some_value; //does not work :(
In Zend Framework 1 die meisten arrays würde funktionieren auf diese Weise, und in ZF2 mehr und mehr , ich Laufe in Fragen, wo muss ich den Weg ändern, wie bekomme ich diesen Wert.
Macht das Sinn? Ich sicher jede Hilfe dankbar.
Vielen Dank,
Greg
InformationsquelleAutor der Frage gregthegeek | 2013-05-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie schon zuvor in anderen Antworten, mit
->
bedeutet, dass Sie Zugriff auf ein Objekt, kein array.Manchmal ist es jedoch möglich, dass ein Objekt als array behandelt werden. Es ist, wenn es implementiert
ArrayAccess
- Schnittstelle. Die Programmierer tun können, so dass zB. Aufruf$object->field
wäre äquivalent zu$object['field']
aber er/Sie muss nicht.Darüber hinaus ist es möglich, zu behandeln ein array als ein Objekt (siehe das Handbuch), aber in diesem Fall ist es nicht ein array sondern ein Objekt und den gleichen Weg wie oben.
InformationsquelleAutor der Antwort Voitcus
Den Variablen, mit denen Sie erhalten Eigenschaften, die mit
->
sind eigentlich Objekte, die nicht in arrays. Sie erlauben die['some_key']
syntax, aber das bedeutet nicht, Sie sind arrays. Sie sind es nicht.Können Sie Lesen mehr über Objekte auf dieser Seite des PHP-Handbuches.
InformationsquelleAutor der Antwort rpkamp
Diejenigen, die nicht die arrays, Sie sind Objekte.
InformationsquelleAutor der Antwort Warren Sergent
Dass ist, weil es kein array ist eine variable Objekte.
Beispielsweise;
InformationsquelleAutor der Antwort Kevin Choppin