Php 访问对象变量的属性时尝试获取非对象的属性

Php 访问对象变量的属性时尝试获取非对象的属性,php,object,Php,Object,我有一个页面,其中有一个表单,用户可以在上面添加对象。逐一地。当用户发送表单时,将向当前页面发送帖子,以使用新对象更新$objects。这是代码 <?php include ('header.php'); include ('dbc.php'); include ('object.php'); $objects = array(); if(isset($_POST['flag'])) { $objects = unseri

我有一个页面,其中有一个表单,用户可以在上面添加对象。逐一地。当用户发送表单时,将向当前页面发送帖子,以使用新对象更新
$objects
。这是代码

<?php
    include ('header.php');
    include ('dbc.php');
    include ('object.php');

    $objects = array();

    if(isset($_POST['flag']))
    {
        $objects = unserialize($_POST['objects']);

        $name = mysql_fix_string($_POST['name']);
        $quantity = mysql_fix_string($_POST['quantity']);
        $observation = mysql_fix_string($_POST['observation']);

        $object = new Object();

        $object->name = $name;
        $object->quantity = $quantity;
        $object->observation = $observation;

        $objects[] = $object;
    }

    var_dump($objects);
?>
<body>
        <div class="leftContainer">
            <div class="upperContainer">
                <div class="ContainerTitle">
                    Imagem do produto:
                </div>
                <div style="height: 200px;" class="upperContainerImageDiv"></div>
            </div>
            <div class="bottomContainer">
                <div class="bottomContainerRequestsDiv">
                    <un>
                        <li class="listItem">
                            <?php
                                foreach ($object as $product)
                                {
                                    $counter = 1;
                                    ?>
                                        <div class="listItemInnerDiv">
          //error here                      <span class="listItemInnerDivText"><?php echo $counter ." ". $product->name ?></span>
                                        </div>
                                    <?php
                                    $counter + 1;
                                }
                            ?>
                        </li>
                    </un>
                </div>
            </div>
        </div>
        <div class="rightContainer">
            <form action="" method="POST">
                <table style="margin-left: auto; margin-right: auto;">
                    <thead>
                        <div class="ContainerTitle">
                            Adicionar produto:
                        </div>
                    </thead>
                    <tbody>
                        <tr>
                            <td><span class="tdTitle">Produto:</span></td>
                            <td>
                                <select class="input" name="name" onchange="ImageUpdater(this.value);">
                                    <option>Selecione</option>
                                    <?php
                                        $query = "SELECT g_id, name FROM `group`";

                                        $result = mysql_query($query);

                                        while($row = mysql_fetch_array($result))
                                        {
                                            ?><optgroup label="<?php echo $row[1] ?>"><?php

                                            $query = "SELECT name FROM `object` WHERE g_id='$row[0]'";

                                            $secondaryResult = mysql_query($query);

                                            while($secondaryRow = mysql_fetch_array($secondaryResult))
                                            {
                                                ?><option><?php echo $secondaryRow[0] ?></option><?php
                                            }
                                        }
                                    ?>
                                </select>
                            </td>
                        </tr>
                        <tr>
                            <td><span class="tdTitle">Quantidade:</span></td>
                            <td>
                                <input class="input" type="number" name="quantity">
                            </td>
                        </tr>
                        <tr>
                            <td><span class="tdTitle">Observações:</span></td>
                            <td>
                                <input class="input" type="text" name="observation">
                            </td>
                        </tr>
                    </tbody>
                </table>
                <input type="hidden" name="flag" value="1"/>
                <input type="hidden" name="objects" value="<?php echo htmlentities(serialize($objects)) ?>"/>
                <center><input name="addbutton" type="submit" value="Adicionar"/></center>
            </form>
        </div>
    </body>
</html>

我在这里做错了什么?为什么会发生此错误?

您正在将对象数组创建为
$objects
;但您的foreach循环是:

 foreach ($object as $product)

您错过了
$objects

末尾的's',您的数组称为
$objects
;您的foreach循环是从
$object
生成的-我认为后者确实需要在末尾加一个“s”。真不敢相信我没看到。把它贴出来作为答案,我会把它标记为已回答。我想我们都做过类似的事情。很高兴能帮忙。
 foreach ($object as $product)