Wie bekomme ich den Wert von object(stdClass)?

Lesezeit: 2 Minuten

Wie bekomme ich den Wert von objectstdClass
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.

  • 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

Du kannst tun: $obj->Title und so weiter.

Oder Sie können es in ein Array umwandeln:

$array = get_object_vars($obj);

  • Danke! $obj->Title erledigt das für mich.

    – Zwerg

    31. Oktober 2011 um 16:28 Uhr

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

  • Danke für Ihre Hilfe! Ich brauche nur $obj->Title, aber es ist gut, die anderen Informationen für die Zukunft zu kennen.

    – Zwerg

    31. Oktober 2011 um 16:29 Uhr

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.

997930cookie-checkWie bekomme ich den Wert von object(stdClass)?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy