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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了发射“[]”的字符串到PHP驱动后端[关闭]相关的知识,希望对你有一定的参考价值。

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

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

echo $overlapExists;

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

答案

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

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

那回报,

bool(false) <- Without Json decode
bool(true)  <- With Json decode
另一答案

您需要检查阵列数据数组或对象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;

以上是关于发射“[]”的字符串到PHP驱动后端[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何将前端 JS 重构为 Angular 2 以与 PHP MVC 后端完美配合? [关闭]

验证坐标在某片坐标区域内 php 代码

Linux字符设备驱动实例—globalmem驱动

后端判断用户是否关闭浏览器(关闭网站相关的全部tab)

当用户关闭页面时,如何阻止服务器发送的事件脚本运行? PHP

合适的后端语言社交网络 Node.js/mongoDb 或 PHP/Mysql [关闭]