web-dev-qa-db-ja.com

object(stdClass)から値を取得するにはどうすればよいですか?

PHPを使用して、次のような形式でコードに送られる文字列を解析する必要があります。

object(stdClass)(4) { ["Title"]=> string(5) "Fruit" ["Color"]=> string(6) "yellow" ["Name"]=> string(6) "banana" ["id"]=> int(3) }

簡単な解決策があると確信していますが、見つけることができないようです...色と名前を取得する方法は?

本当にありがとう。

28
dwarbi

できるよ: $obj->Title etcetera。

または、配列に変換できます。

$array = get_object_vars($obj);
57
Neal

次のようにStdClassオブジェクトを作成し、それらからメソッドにアクセスします。

$obj = new StdClass;

$obj->foo = "bar";
echo $obj->foo;

独自のメソッドを提供できるように、StdClassをサブクラス化するか、独自のジェネリッククラスを作成することをお勧めします。

StdClassオブジェクトを配列に変換する:

これは、次のコードを使用して実行できます。

$array = get_object_vars($obj);

ご覧ください: http://php.net/manual/en/language.oop5.magic.phphttp://krisjordan.com/dynamic-properties-in-php -with-stdclass

12
user542603

StdClassオブジェクトの例:

$obj = new stdClass();

$obj->foo = "bar";

プロパティによる(他の人が述べたように)

echo $obj->foo; // -> "bar"

変数の値による

$my_foo = 'foo';

echo $obj->{$my_foo}; // -> "bar"
2
mfink