发射“[]”的字符串到PHP驱动后端[关闭]

问题描述 投票:0回答:2

所以,那里有它调用到后端,其获取在一定时间内所有保留和它们返回到前端的功能。如果在相应的时间内没有保留,后端返回字符串“[]”。然后,这些数据被发送,我评估是否存在或不保留再次后端。对于这一点,我想使用PHP函数“空()”,在后端。和代码有基本上只是看起来像这样

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

echo $overlapExists;

现在,我试图上面的代码都具有和不具有如果条件之前对其进行解码。在这两种情况下,“空的()”函数总是返回false,这不应该是这样,当数组实际上是空的。我究竟做错了什么?

javascript php
2个回答
2
投票

您要检查“[]”为空。因此,这不是空的字符串...您可以用空检查()像以前一样将其转换为一个适当的阵列...

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

那回报,

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

-1
投票

您需要检查阵列数据数组或对象e.g如果牵强阵列包含

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

如果对象,然后用这个和名称是数据库表的列名

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

     echo $overlapExists;
© www.soinside.com 2019 - 2024. All rights reserved.