2010-03-30 49 views
1

$jj_post是通过print_r()进行的阵列输出调试。这个变量是对象的数组:有没有更简单的方法来访问数组中的属性?

Array 
(
    [0] => stdClass Object 
     (
      [ID] => 2571 
     ) 

) 

我访问对象属性,ID,通过这样的代码:

$jj_post_id = $jj_post[0]; 
$jj_ID = $jj_post_id->ID; 

因此,有更短的方式,因为这是我唯一知道,我觉得代码有点太长了?

回答

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; 
    } 
} 
+0

非常感谢你。我欠你一个人情。你甚至给我代码,我可能会永远需要; D – justjoe 2010-03-30 05:32:32

3
$jj_ID = $jj_post[0]->ID; 
相关问题