Phi*_*ord 52 php warnings object
我在错误日志中收到此警告,并想知道如何在我的代码中更正此问题.
警告:PHP注意:未定义的属性:第440行的script.php中的stdClass :: $记录
一些代码:
// Parse object to get account id's
// The response doesn't have the records attribute sometimes.
$role_arr = getRole($response->records); // Line 440
Run Code Online (Sandbox Code Playgroud)
如果记录存在则响应
stdClass Object
(
[done] => 1
[queryLocator] =>
[records] => Array
(
[0] => stdClass Object
(
[type] => User
[Id] =>
[any] => stdClass Object
(
[type] => My Role
[Id] =>
[any] => <sf:Name>My Name</sf:Name>
)
)
)
[size] => 1
)
Run Code Online (Sandbox Code Playgroud)
如果记录不存在则响应
stdClass Object
(
[done] => 1
[queryLocator] =>
[size] => 0
)
Run Code Online (Sandbox Code Playgroud)
我在想类似于array_key_exists()的功能,但对于对象,什么?或者我是以错误的方式来做这件事的?
use*_*291 113
if(isset($response->records))
print "we've got records!";
Run Code Online (Sandbox Code Playgroud)
isset()适用于顶级,但是empty()更有用于查找是否设置了嵌套值.例如:
if(isset($json['foo'] && isset($json['foo']['bar'])) {
$value = $json['foo']['bar']
}
Run Code Online (Sandbox Code Playgroud)
要么:
if (!empty($json['foo']['bar']) {
$value = $json['foo']['bar']
}
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我会使用:
if (!empty($response->records)) {
// do something
}
Run Code Online (Sandbox Code Playgroud)
如果该属性不存在,您将不会收到任何丑陋的通知,并且您将知道您实际上已经获得了一些记录,即.$ response-> records不是空数组,NULL,FALSE或任何其他空值.