2010-03-30 50 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; 
相關問題