情况如下:
有一个包含关联数组的数字数组。 这些关联数组具有2个名为“ anfang”和“ ende”的元素。
我现在正在使用foreach循环遍历数值数组,并且在foreach循环中我想访问关联元素,看起来像这样
foreach($allReservationsOrRequestsByUser as $singleRequestOrReservationByUser){
if(singleRequestOrReservationByUser["start"] > singleRequestOrReservationByUser["end"]{
//do something
}
}
现在,我在apache2错误日志中收到以下错误消息
[2019年2月4日星期一11:23:16.018026] [:错误] [pid 1947] [客户端 127.0.0.1:41342] PHP致命错误:未捕获的错误:无法将stdClass类型的对象用作数组 /var/www/html/include/Dauerreservierung/checkForOverlapWithExistingRequestsOrReservations.php:19\nStack 跟踪:\ n#0 /var/www/html/include/Dauerreservierung/checkForOverlapWithExistingRequestsOrReservations.php(5): 大型机(数组)\ n#1 {main} \ 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"
}
}
答案 0 :(得分:3)
异常消息是不言自明的。您正在使用stdClass而不是关联数组。也许您正在编码JSON?您能告诉我们完整的转储(var_dump($allReservationsOrRequestsByUser)
)吗?
无论如何,如果这是stdClass
,则需要使用start
来获得end
或->
属性。