O'Reilly logo

PHP 5 Kochbuch, Third Edition by Stephan Schmidt, Ulrich Speidel, Matthias Brusdeylins, Carsten Lucke, Adam Trachtenberg, David Sklar

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

4.27 Echte Objekte als Schlüssel von Arrays verwenden

Problem

Sie möchten echte Objekte als Schlüssel von Arrays verwenden, was PHP nicht erlaubt. Ein Workaround, wie die Serialisierung der Objekte in eine Zeichenkette, die dann als eindeutiger Identifier genutzt wird, kommt für Sie nicht infrage.

Lösung

Die Standard PHP Library (SPL) stellt ab PHP 5.3 die Klasse SplObjectStorage zur Verfügung. Diese können Sie als Map-Datenstruktur nutzen und Objekte als Schlüssel verwenden:

class Foo {}
class Bar {}

$s1 = new SplObjectStorage();
$o1 = new StdClass;
$o2 = new Foo;
$o3 = new Bar;
$s1[$o1] = 'Wert $o1';
var_dump($s1->contains($o1));
var_dump($s1->contains($o2));
var_dump($s1->contains($o3));
bool(true)
bool(false)
bool(false) $s2 = new SplObjectStorage(); ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required