php object 取值 get,php获取到的数组中包含object,get_object_vars 和 json_decode取不出来 object中的值...
时间: 2024-05-04 11:18:20 浏览: 115
如果你要获取 PHP 中对象(Object)中的属性(Property),可以使用 PHP 中的魔术方法 __get()。这个方法会在试图获取一个未定义或不可见属性时自动调用。
示例代码:
class MyClass {
private $myProperty = 'Hello';
public function __get($name) {
if (property_exists($this, $name)) {
return $this->$name;
} else {
return null;
}
}
}
$myObject = new MyClass();
echo $myObject->myProperty; // 输出:Hello
如果你需要获取对象中所有属性,包括私有属性,可以使用 get_object_vars()
函数。示例代码:
class MyClass {
private $myProperty = 'Hello';
public $publicProperty = 'World';
}
$myObject = new MyClass();
$vars = get_object_vars($myObject);
print_r($vars);
输出:
Array
(
[myProperty] => Hello
[publicProperty] => World
)
如果对象中包含其他对象,可以使用 json_encode()
将对象转换为 JSON 字符串,然后再使用 json_decode()
将字符串转换为数组,就可以获取对象中的属性了。示例代码:
class SubClass {
public $subProperty = 'Sub Value';
}
class MyClass {
public $myProperty = 'My Value';
public $subObject;
public function __construct() {
$this->subObject = new SubClass();
}
}
$myObject = new MyClass();
$jsonString = json_encode($myObject);
$array = json_decode($jsonString, true);
print_r($array);
输出:
Array
(
[myProperty] => My Value
[subObject] => Array
(
[subProperty] => Sub Value
)
)
注意:使用 json_encode()
和 json_decode()
转换对象时,对象中的私有属性将被忽略。
相关推荐

















