因此,有一个函数调用后端,该函数在特定时间范围内获取所有预留并将其返回到前端。如果在相应的时间范围内没有保留,则后端将返回字符串“ []”。然后,这些数据再次传输到后端,在这里我评估是否存在保留。 为此,我想在后端使用php函数“ empty()”。 那里的代码基本上看起来像这样
$allReservationsOrRequestsByUser = json_decode($allReservationsOrRequestsByUser);
if(empty($allReservationsOrRequestsByUser)){
$overlapExists = false;
}else{
$overlapExists =
checkForOverlapWithExistingRequestsOrReservations($todayDate,
$allReservationsOrRequestsByUser);
}
echo $overlapExists;
现在,我尝试了以上代码,无论是否在条件条件之前对其进行解码。在这两种情况下,“ empty()”函数始终返回false,而当数组实际为空时则不应该如此。 我究竟做错了什么?
答案 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;