2011-04-11 132 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>"); 
}