2016-01-22 73 views
1

所以,我下面的PHP WP用:PHP的通知(試圖讓非對象的屬性)錯誤

$usersNames = array(); 
foreach ($userIDs as $userId) { 
      $userInfo = get_userdata($userId); 
      $usersNames[] = $userInfo->display_name; //this one          
     } 

我正在一個錯誤$usersNames

"PHP Notice: Trying to get property of non-object in /functions.php on line" 

這是怎麼回事?

有什麼建議嗎?

感謝

編輯:

所以,對於$userIDs,我有用戶ID的數組。然後,我試圖獲取用戶顯示名稱等個人ID。

+0

什麼的print_r的'輸出($ USERINFO );'? – AnkiiG

+0

請新增功能'get_userdata'你的問題,使我們可以看到,該數據是由函數返回。 –

+0

它是'wp'功能。這裏是'get_userdata'抄本:https://codex.wordpress.org/Function_Reference/get_userdata –

回答

4

你的功能get_userdata()將返回False on failure, WP_User object on success.

和錯誤Trying to get property of non-object意味着該函數返回false

簡單的檢查,如果$userInfo不爲空

$userInfo = get_userdata($userId); 

if (!empty($userInfo)) { 
    $usersNames[] = $userInfo->display_name; 
} 
+0

謝謝。這解決了這個問題。 !欣賞它! :) –

0

你需要判斷$ USERINFO是否返回正確的OBJ

$usersNames = array(); 
 
foreach ($userIDs as $userId) { 
 
      $userInfo = get_userdata($userId); 
 
      $usersNames[] = isset($userInfo->display_name)?$userInfo->display_name:''; //this one          
 
     }

+0

它將創建空的條目。我認爲最好不要包含空值。 – Justinas

相關問題