这种情况如下:
有包含关联数组的数值阵列。这些关联数组有一个名为“ANFANG”和“恩德” 2个元素。
现在,我使用foreach循环遍历数组的数值,并且foreach循环里面我要访问的关联元素,它看起来像这样
foreach($allReservationsOrRequestsByUser as $singleRequestOrReservationByUser){
if(singleRequestOrReservationByUser["start"] > singleRequestOrReservationByUser["end"]{
//do something
}
}
现在,我收到以下错误信息到我的Apache2错误日志
[周一11年2月4日:23:16.018026 2019] [:错误] [PID 1947] [客户端127.0.0.1:41342] PHP致命错误:未捕获的错误:无法使用类型stdClass的的对象作为在/ var阵列/ WWW / HTML /包括/ Dauerreservierung / checkForOverlapWithExistingRequestsOrReservations.php:19 \ nStack迹:\ N#0 /var/www/html/include/Dauerreservierung/checkForOverlapWithExistingRequestsOrReservations.php(5):大型机(阵列)\ N#1 {主} \ n的抛出/var/www/html/include/Dauerreservierung/checkForOverlapWithExistingRequestsOrReservations.php第19行,引用者:http://localhost/view/dauerreservierung.php`
我真的不明白是什么问题。我一直在做我在其他地方后端这一切的时候,它总是工作。这是我第一次看到这个错误。我也试过了的var_dump一个单独的元素,就像这样:
var_dump($allReservationsOrRequestsByUser[0]["anfang"];
我也得到了同样的错误。好像事情是错误的数组,但我不明白这是什么,因为我真的没有做任何事情,从早期太大的不同。
编辑:
完整的转储输出全阵列时,即时得到的是:
array(1) {
[0]=>
object(stdClass)#2 (2) {
["anfang"]=>
string(19) "2019-01-23 00:00:00"
["ende"]=>
string(19) "2019-01-30 00:00:00"
}
}
异常消息是不言自明的。你的工作,而不是stdClass已经关联数组。也许你编码JSON?你能告诉我们完整的转储(var_dump($allReservationsOrRequestsByUser)
)?
无论如何,如果这是stdClass
,得到你需要使用start
end
或->
财产。