如何从object(stdClass)获取值?

dwa*_*rbi 31 php parsing

使用PHP,我必须以这样的格式解析出现在我的代码中的字符串:

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

我确信这是一个简单的解决方案,但我似乎无法找到它......如何获得颜色和名称?

非常感谢.

Nea*_*eal 58

你可以这样做:$obj->Title等等.

或者你可以把它变成一个数组:

$array = get_object_vars($obj);
Run Code Online (Sandbox Code Playgroud)


小智 12

您可以创建StdClass对象并从中访问方法,如下所示:

$obj = new StdClass;

$obj->foo = "bar";
echo $obj->foo;
Run Code Online (Sandbox Code Playgroud)

我建议继承StdClass或创建自己的泛型类,以便提供自己的方法.

将StdClass对象转换为数组:

您可以使用以下代码执行此操作:

$array = get_object_vars($obj);
Run Code Online (Sandbox Code Playgroud)

请查看:http : //php.net/manual/en/language.oop5.magic.php http://krisjordan.com/dynamic-properties-in-php-with-stdclass


mfi*_*ink 5

示例 StdClass 对象:

$obj = new stdClass();

$obj->foo = "bar";
Run Code Online (Sandbox Code Playgroud)

按财产(正如其他人所提到的)

echo $obj->foo; // -> "bar"
Run Code Online (Sandbox Code Playgroud)

通过变量的值

$my_foo = 'foo';

echo $obj->{$my_foo}; // -> "bar"
Run Code Online (Sandbox Code Playgroud)