PHP数组 - 试图获取非对象的属性

Aer*_*ate 7 html php arrays

我还是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>");
Run Code Online (Sandbox Code Playgroud)

我在我的函数上使用了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
    )
)
Run Code Online (Sandbox Code Playgroud)

所以数组中有元素.

实际代码属于:

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>");
    }
Run Code Online (Sandbox Code Playgroud)

我在想 - 如何将数组转换为对象?也许这将是我的解决方案.

Phi*_*hil 14

我在想 - 如何将数组转换为对象?也许这将是我的解决方案.

这确实是一个解决方案.

$row = (object) $row;
Run Code Online (Sandbox Code Playgroud)

另一种方法是使用正确的语法来处理有问题的数据类型,在本例中是一个数组.

代替

$row->last_name
Run Code Online (Sandbox Code Playgroud)

你应该用

$row['last_name']
Run Code Online (Sandbox Code Playgroud)


Pas*_*TIN 5

在使用数组时,您应该使用[]访问数组的项目:

echo $row['last_name'];
Run Code Online (Sandbox Code Playgroud)

使用正确的语法,错误将消失;-)


尽管如此,如果你真的想要将一个数组转换为一个对象(不知道为什么你会这样做,但在这种特定情况下),你可以使用这个:

$row = (object)$row;
echo $row->last_name;
Run Code Online (Sandbox Code Playgroud)

这是手册的相关部分:Type Casting


Ant*_*ack 5

试试这个...

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>");
}
Run Code Online (Sandbox Code Playgroud)