Zwerg
Mit PHP muss ich eine Zeichenfolge analysieren, die in einem Format wie dem folgenden in meinen Code kommt:
object(stdClass)(4) {
["Title"]=> string(5) "Fruit"
["Color"]=> string(6) "yellow"
["Name"]=> string(6) "banana"
["id"]=> int(3)
}
Ich bin mir sicher, dass es eine einfache Lösung gibt, aber ich kann sie nicht finden … wie bekomme ich die Farbe und den Namen?
Vielen Dank.
Du kannst tun: $obj->Title
und so weiter.
Oder Sie können es in ein Array umwandeln:
$array = get_object_vars($obj);
So erstellen Sie StdClass-Objekte und greifen daraus auf Methoden zu:
$obj = new StdClass;
$obj->foo = "bar";
echo $obj->foo;
Ich empfehle, StdClass zu unterteilen oder eine eigene generische Klasse zu erstellen, damit Sie Ihre eigenen Methoden bereitstellen können.
Ein StdClass-Objekt in ein Array umwandeln:
Sie können dies mit dem folgenden Code tun:
$array = get_object_vars($obj);
Schauen Sie sich an:
http://php.net/manual/en/language.oop5.magic.php
http://krisjordan.com/dynamic-properties-in-php-with-stdclass
Beispiel für ein StdClass-Objekt:
$obj = new stdClass();
$obj->foo = "bar";
Nach Eigenschaft (wie andere schon erwähnt haben)
echo $obj->foo; // -> "bar"
Nach Variablenwert:
$my_foo = 'foo';
echo $obj->{$my_foo}; // -> "bar"
Ich habe dieses Problem durch Konvertieren gelöst stdClass object
zu array
verwenden json_encode
und json_decode
so was:
$object_encoded = json_encode( $obj );
$object_decoded = json_decode( $object_encoded, true );
echo $object_decoded['Color'];
Notiz: Vorbeigehen true
Parameter ein json_decode
gibt ein assoziatives Array zurück.
9979300cookie-checkWie bekomme ich den Wert von object(stdClass)?yes
Haben Sie versucht, $obj->Title $obj->Color
– Dmitri Snytkine
31. Oktober 2011 um 15:49 Uhr
Es wäre etwas aufschlussreicher, wenn Sie den Codeausschnitt posten würden, den Sie zum Generieren dieser Ausgabe verwenden.
– 0xd
31. Oktober 2011 um 15:49 Uhr
Warte was? Sie müssen “analysieren” eine Zeichenfolge? Oder ist dies eine tatsächliche Objektvariable?
– mario
31. Oktober 2011 um 15:55 Uhr