Php 检查数组是否为空';使用cast无法工作?
行Php 检查数组是否为空';使用cast无法工作?,php,Php,行$main[0]->tasks=$task显示未定义变量:task的错误。在我的情况下,我的记录中没有任务,因此执行失败。但我希望它只是跳过并继续,因为我已经将它放在“if”中,它会检查任务对象是否为空 $stmt = $db->prepare("SELECT * FROM task where uId = ?"); $stmt->bind_param('s',$userId); if($stmt->execute()){ $user = $stmt->ge
$main[0]->tasks=$task代码>显示未定义变量:task
的错误。在我的情况下,我的记录中没有任务,因此执行失败。但我希望它只是跳过并继续,因为我已经将它放在“if”中,它会检查任务对象是否为空
$stmt = $db->prepare("SELECT * FROM task where uId = ?");
$stmt->bind_param('s',$userId);
if($stmt->execute()){
$user = $stmt->get_result();
while ($obj = $user->fetch_object()) {
$task[] = $obj;
}
if(count((array)$task)){
$main[0]->tasks = $task;
}
}
为什么要使用cast?这个查询应该返回多少行?如果只有一个-为什么要循环和数组?它已经是一个数组了。您只需要在while循环之前定义它<代码>$task=array()代码>。所以我忘记初始化$task数组了?
if($stmt->execute()){
$task = array();
$user = $stmt->get_result();
while ($obj = $user->fetch_object()) {
$task[] = $obj;
}
if(count($task)){ //or if($task){
$main[0]->tasks = $task;
}
}