【问题标题】:PHP Arrays - Trying to get property of non-objectPHP Arrays - 试图获取非对象的属性
【发布时间】:2011-08-02 18:32:45
【问题描述】:

我还是 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>");
    }

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

【问题讨论】:

    标签: php html arrays


    【解决方案1】:

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

    这确实是一种解决方案。

    $row = (object) $row;
    

    另一种方法是对相关数据类型使用正确的语法,在本例中为数组。

    代替

    $row->last_name
    

    你应该使用

    $row['last_name']
    

    【讨论】:

    • 非常感谢!另外,您是否知道我如何将这些信息也关联到表格中?我想在出现的每个名称之间放置一个按钮。如果用户点击它,它会将用户信息带到另一个页面吗?
    【解决方案2】:

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

    echo $row['last_name'];
    

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


    不过,如果您真的想将数组转换为对象(虽然在这种特定情况下不太确定为什么要这样做),您可以使用:

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

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

    【讨论】:

      【解决方案3】:

      试试这个...

      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>");
      }
      

      【讨论】:

        猜你喜欢
        • 2017-08-21
        • 1970-01-01
        • 2013-12-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多