传输“ []”字符串到PHP驱动的后端

时间:2019-02-04 09:20:45

标签: javascript php

因此,有一个函数调用后端,该函数在特定时间范围内获取所有预留并将其返回到前端。如果在相应的时间范围内没有保留,则后端将返回字符串“ []”。然后,这些数据再次传输到后端,在这里我评估是否存在保留。 为此,我想在后端使用php函数“ empty()”。 那里的代码基本上看起来像这样

$allReservationsOrRequestsByUser = json_decode($allReservationsOrRequestsByUser);
if(empty($allReservationsOrRequestsByUser)){
  $overlapExists = false;
}else{
  $overlapExists = 
checkForOverlapWithExistingRequestsOrReservations($todayDate, 
$allReservationsOrRequestsByUser);
}

echo $overlapExists;

现在,我尝试了以上代码,无论是否在条件条件之前对其进行解码。在这两种情况下,“ empty()”函数始终返回false,而当数组实际为空时则不应该如此。 我究竟做错了什么?

2 个答案:

答案 0 :(得分:2)

您正在尝试检查“ []”是否为空。因此它不能作为字符串为空...您可以先将其转换为适当的数组,然后再使用empty()进行检查...

$a = "[]";
var_dump(empty($a));
var_dump(empty(json_decode($a)));

返回,

bool(false) <- Without Json decode
bool(true)  <- With Json decode

答案 1 :(得分:-1)

您需要检查数组或对象中的数组数据 例如,如果提取的数组包含

     if(empty($allReservationsOrRequestsByUser[0]['name'])){
         $overlapExists = false;
      }else{
       $overlapExists = checkForOverlapWithExistingRequestsOrReservations($todayDate, 
      $allReservationsOrRequestsByUser);
      }

如果对象然后使用它,并且name是您的数据库表列名

      if(empty($allReservationsOrRequestsByUser[0]->name)){
        $overlapExists = false;
     }else{
       $overlapExists = checkForOverlapWithExistingRequestsOrReservations($todayDate, 
        $allReservationsOrRequestsByUser);
      }

     echo $overlapExists;