无法在php

时间:2019-02-04 10:35:24

标签: php

情况如下:

有一个包含关联数组的数字数组。 这些关联数组具有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"
    }
}

1 个答案:

答案 0 :(得分:3)

异常消息是不言自明的。您正在使用stdClass而不是关联数组。也许您正在编码JSON?您能告诉我们完整的转储(var_dump($allReservationsOrRequestsByUser))吗?

无论如何,如果这是stdClass,则需要使用start来获得end->属性。