2011-04-11 133 views
4

我還是PHP新手,請耐心等待。PHP數組 - 試圖獲取非對象的屬性

所以我得到這個錯誤: 注意:試圖讓該行非對象的屬性:

echo (
      "<tr>". 
      "<td>".$row->last_name.  "</td>". 
      "<td>".$row->first_name. "</td>". 
      "<td>".$row->phone_no.  "</td>". 
      "<td>".$row->date_of_birth. "</td>". 
      "<td>".$row->membership. "</td>". 
      "</tr></table>"); 

我用的print_r對我的功能,我得到:

Array 
(
    [0] => Array 
    (
     [0] => Lee 
     [last_name] => Lee 
     [1] => Lian 
     [first_name] => Lian 
     [2] => 39025823 
     [phone_no] => 39025823 
     [3] => 1967-09-19 
     [date_of_birth] => 1967-09-19 
     [4] => T 
     [membership] => T 
     [5] => 
     [status] => 
     [6] => 0 
     [room_no] => 0 
    ) 
) 

所以有數組內的元素。下

實際的代碼屬於:

foreach($array as $row) 
    { 
      echo (
      "<tr>". 
      "<td>".$row->last_name.  "</td>". 
      "<td>".$row->first_name. "</td>". 
      "<td>".$row->phone_no.  "</td>". 
      "<td>".$row->date_of_birth. "</td>". 
      "<td>".$row->membership. "</td>". 
      "</tr></table>"); 
    } 

我在想 - 我將如何轉換一個數組對象?也許這將是我的解決方案。

回答

10

I was thinking - how would I convert an array into an object? Maybe that would be my solution.

這確實是一個解決方案。

$row = (object) $row; 

另一種情況是使用正確的數據類型語法,在這種情況下是一個數組。取而代之的

$row->last_name 

您應該使用

$row['last_name'] 
+0

甜的感謝!另外,你有什麼機會知道我怎樣才能將這些信息與形式聯繫起來? 我想在出現的每個名稱之間放置一個按鈕。如果用戶點擊它,它會將該用戶信息帶到另一個頁面? – 2011-04-11 04:44:05

5

當你正在使用數組,你應該使用[]訪問數組的項目:

echo $row['last_name']; 

使用正確的語法,錯誤將消失;-)


不過,如果你真的想要一個數組轉換爲對象(不知道爲什麼你會做到這一點,不過,在這種特殊情況下),您可以使用此:

$row = (object)$row; 
echo $row->last_name; 

這裏的手冊中的相關章節:Type Casting

4

嘗試......

foreach($array as $row) 
{ 
    echo (
     "<tr>". 
     "<td>".$row['last_name'].  "</td>". 
     "<td>".$row['first_name']. "</td>". 
     "<td>".$row['phone_no'].  "</td>". 
     "<td>".$row['date_of_birth']. "</td>". 
     "<td>".$row['membership']. "</td>". 
     "</tr></table>"); 
}