PHP对象未定义属性

PHP对象未定义属性,php,object,Php,Object,我正在尝试访问这个对象$results,我不明白为什么第一个echo和print\r会给我预期的输出,但是最后一个echo会给我错误“Undefined property” -----------------------------------更好的解释--------------------------------- 我注意到您需要一些其他信息来帮助我,因此: $results是一个包含查询结果的对象:它包含一个酒店(对象)列表,每个酒店(对象)都由一些字段->值来描述。 为了修改这个对象(从

我正在尝试访问这个对象$results,我不明白为什么第一个echo和print\r会给我预期的输出,但是最后一个echo会给我错误“Undefined property”

-----------------------------------更好的解释---------------------------------

我注意到您需要一些其他信息来帮助我,因此:

$results是一个包含查询结果的对象:它包含一个酒店(对象)列表,每个酒店(对象)都由一些字段->值来描述。 为了修改这个对象(从对象$results中删除一个hotel),我正在寻找引用对象$results项的方法,我认为方法是$results->{$number}

所以我真正想做的是:

foreach($results as $number => $hotel){
    foreach($hotel as $field => $value) {
        if($field == 'id' && $value == '18'){
            // here I wanna delete the hotel from the object $results
            // but unset($results->{$number}) doesn't work.

        }
    }
}

如图所示,foreach通常用于数组。因此,要访问项目,您需要使用良好的运算符,即[] 在foreach中,$number是键,$hotel是数组中的项


因此,要访问酒店,您需要$result[$number]

您可以调试第三个“对象”。请尝试使用
$results[$number]
。您使用的是foreach,这可能意味着您使用的是数组。您不需要回显作为对象的打印。\r什么是
$results
?为什么在使用foreach后回显$results属性?这毫无意义?你到底想要什么?
foreach($results as $number => $hotel){
    foreach($hotel as $field => $value) {
        if($field == 'id' && $value == '18'){
            // here I wanna delete the hotel from the object $results
            // but unset($results->{$number}) doesn't work.

        }
    }
}