$jj_post
是通过print_r()
进行的数组输出调试。这个变量是一个对象数组:
Array
(
[0] => stdClass Object
(
[ID] => 2571
)
)
我通过以下代码访问object属性ID:
$jj_post_id = $jj_post[0];
$jj_ID = $jj_post_id->ID;
那么,有没有更简短的方法,因为这是我唯一知道的事情,我觉得代码有点太长了?
答案 0 :(得分:3)
$jj_ID = $jj_post[0]->ID;
答案 1 :(得分:1)
如果您确定$ jj_post始终是一个数组,并且它将始终包含一个stdClass对象,那么您应该这样访问:
$jj_ID = $jj_post[0]->ID;
但有时并非如此。您可能并不总是知道变量的内容,因此您需要进行一些检查以验证您是否可以访问安全且可用的区域。
如果代码执行得很好,代码应该不会成为问题。
在我看来,你有两种选择:
$jj_ID = @$jj_post[0]->ID;
这可确保以静默方式处理运行时错误,而不会抛出到标准输出。
另一种方法是绝对检查每种类型的存在:
$jj_ID = "";
if(is_array($jj_post))
{
$jj_post_id = $jj_post[0];
if(!empty($jj_post_id))
{
$jj_ID = $jj_post_id->ID;
}
}