PHP Arrayable Interface

8

Ich bin mir sicher, dass ich eine Weile über eine neue Funktion von PHP gelesen habe, die entweder eine neue magische Methode oder eine neue Schnittstelle war, so dass Sie Arrayable-Methoden implementieren konnten.

zB

%Vor%

Stellte ich es mir vor?

    
gawpertron 07.08.2012, 08:03
quelle

4 Antworten

5
  

Stellte ich es mir vor?

Ja.

  • Es gibt keine Schnittstelle (PHP 5.4 oder anders) in PHP, um die Umwandlung in ein Array zu handhaben.

  • PHP 5.4.0 hat die JsonSerializable Benutzeroberfläche eingeführt, vielleicht denkst du darüber nach?

  • Es gibt auch einen RFC-Entwurf (einen von mehreren verwandten), der eine __toArray() -Methode vorschlägt; Siehe Request for Comments: Skalar-Typ Zauber-Zaubermethoden

salathe 07.08.2012, 08:26
quelle
10

Es ist nicht in PHP selbst, aber Laravel hat eine Schnittstelle, die für genau diesen Zweck gedacht ist:

%Vor%

Hinweis: In Laravel v4 war der Namensraum Illuminate\Support\Contracts und der Name der Schnittstelle war ArrayableInterface .

    
coatesap 20.03.2014 14:28
quelle
2

Da ist das (was ziemlich nutzlos IMO ist) Ссылка

und auch dies (was nützlich ist, aber immer eine Typüberprüfung erfordert, bevor Sie es verwenden)

Ссылка

Aber keine Möglichkeit, die Konvertierung von Objekt zu Array implizit zu handhaben.

    
calumbrodie 23.11.2012 14:28
quelle
1

Sie denken wahrscheinlich an die Iterator -Schnittstelle. Wenn Sie eine Klasse erstellen, die dies implementiert, können Sie darüber hinweg iterieren, als wäre es ein Array. Zum Beispiel können Sie es in einer foreach () Schleife verwenden.

Sehen Sie sich auch die anderen vordefinierten Schnittstellen an.

Sie können immer Ihre eigene arrayfähige Schnittstelle schreiben und dann einen Tipp dafür eingeben oder sie mit instanceof überprüfen (siehe Beispiel # 4) wie Sie angegeben haben, wollten Sie in Ihrem Kommentar .

    
vascowhite 07.08.2012 08:08
quelle