试图在 stdclass 对象中获取非对象的 属性
Trying to get property of non-object in stdclass object
我正在尝试与 API 集成。假设以下代码有效。
$lists = $ac->api("list/list_", array("ids" => "all"));
echo"<pre>"; print_r( $lists); echo"</pre>";
输出如下stdclass对象
stdClass Object
(
[0] => stdClass Object
(
[id] => 1
[name] => List 3
[cdate] => 2018-02-27 08:19:39
[private] => 0
[userid] => 1
[subscriber_count] => 0
)
[result_code] => 1
[result_message] => Success: Something is returned
[result_output] => json
[http_code] => 200
[success] => 1
)
以下代码
foreach($lists as $list) {
echo $list->id;
}
显示错误
Trying to get property of non-object
$list->id 行错误。我该如何解决这个问题?
试试这个
foreach($lists as $list) {
$list = (array)$list;
if(isset($list['id'])){
echo $list['id'];
}
}
这是一个奇怪的结构,发生的事情是它在 result_code
、result_message
、result_output
、success
上循环,这些值不是对象。
要么解决这个问题,要么检查各种循环。
foreach ($lists as $key => $list) {
if (!is_numeric($key) || !is_object($list)) {
continue;
}
echo $list->id;
}
PHP对象干净,好写
// 回显一个PHP数组值
echo $array['value'];
// 回显一个 PHP 对象值
echo $object->value;
现在将 PHP 数组转换(转换)为 PHP 对象。这很简单。我只是在返回数组时将其类型转换为对象。
function array_to_object($array) {
return (object) $array;
}
以上只是一个例子。您不需要 PHP 函数即可将数组转换为对象。 (object) 函数将对任何 PHP 数组执行此操作。如果您需要将对象更改为数组,请使用 (array) 类型转换函数。
function object_to_array($object) {
return (array) $object;
}
当 json 中的 return 数据不存在 [ ] 时,在解析数据之前做一个数组。
喜欢样本:
foreach(array($YourData) as $row){
echo $row->ValueOfYourData;
}
我正在尝试与 API 集成。假设以下代码有效。
$lists = $ac->api("list/list_", array("ids" => "all"));
echo"<pre>"; print_r( $lists); echo"</pre>";
输出如下stdclass对象
stdClass Object
(
[0] => stdClass Object
(
[id] => 1
[name] => List 3
[cdate] => 2018-02-27 08:19:39
[private] => 0
[userid] => 1
[subscriber_count] => 0
)
[result_code] => 1
[result_message] => Success: Something is returned
[result_output] => json
[http_code] => 200
[success] => 1
)
以下代码
foreach($lists as $list) {
echo $list->id;
}
显示错误
Trying to get property of non-object
$list->id 行错误。我该如何解决这个问题?
试试这个
foreach($lists as $list) {
$list = (array)$list;
if(isset($list['id'])){
echo $list['id'];
}
}
这是一个奇怪的结构,发生的事情是它在 result_code
、result_message
、result_output
、success
上循环,这些值不是对象。
要么解决这个问题,要么检查各种循环。
foreach ($lists as $key => $list) {
if (!is_numeric($key) || !is_object($list)) {
continue;
}
echo $list->id;
}
PHP对象干净,好写
// 回显一个PHP数组值
echo $array['value'];
// 回显一个 PHP 对象值
echo $object->value;
现在将 PHP 数组转换(转换)为 PHP 对象。这很简单。我只是在返回数组时将其类型转换为对象。
function array_to_object($array) {
return (object) $array;
}
以上只是一个例子。您不需要 PHP 函数即可将数组转换为对象。 (object) 函数将对任何 PHP 数组执行此操作。如果您需要将对象更改为数组,请使用 (array) 类型转换函数。
function object_to_array($object) {
return (array) $object;
}
当 json 中的 return 数据不存在 [ ] 时,在解析数据之前做一个数组。 喜欢样本:
foreach(array($YourData) as $row){
echo $row->ValueOfYourData;
}