0

我得到一个未定义的属性:stdClass::$company 错误。

这修复了它

   if(isset($exp->company){
       /stuff here
      }

但我有一堆对象,所以我必须为每个对象。有没有更清洁的方法来解决这个问题?

这就是全部

   function test() {
 foreach($_POST['experience'] as $experience)
    {

       $exp=(object)$experience;

    }

             }
4

3 回答 3

1

一个班级就像一栋房子的建筑平面图。对象是按照计划建造的房屋。

使用 astdClass会发生以下情况:您问:“我想使用浴室”,但不知道是否有浴室。当没有浴室时,你就有大麻烦了(狗屎)。

尝试制定一个建筑计划,例如不要使用 astdClass但编写自己的课程。然后您就知道正手存在哪些属性和方法。

否则,您必须在每一个动作中询问:那个房间是否存在,例如if(isset($exp->company)

于 2012-10-11T14:17:38.603 回答
0

是的,有一个干净的方法。您必须追根溯源:您在哪里创建那些 stdClass 实例?去那里定义null你可能需要的每个属性,尽管你只填充了其中的一些属性。

如果您没有实例化那些 stdClass 对象并且您将它们存储在其中$_SESSION,您必须在include您的自定义类之前session_start

于 2012-10-11T14:23:04.230 回答
0

您的问题含糊不清-但这可能会有所帮助

foreach ($exp as $object)
{
   // do stuf to $object
}
于 2012-10-11T14:11:59.093 回答