php - 由于未捕获的 TypeError,如何创建空数组:无法读取 null 的属性“长度”
问题描述
我正在使用数据表。对表格的调用是基于菜单的。SQL 语句可能没有获取任何记录,因此结果是空的。发生这种情况时,数据表会返回错误
未捕获的类型错误:无法读取 null 的属性“长度”
我该如何防止这种情况发生?我在互联网上找不到任何可行的示例或解决方案。
获取 json 数据的我的 SQL 代码:
$stmt->execute();
$result = $stmt->get_result(); //only works when nd_mysli is set on the server!
while ($row = $result->fetch_assoc()) {
$dataset = array(0);
$array[] = $row;
}
$dataset = array(
"echo" => 1,
"totalrecords" => count($array),
"totaldisplayrecords" => count($array),
"data" => $array,
);
echo json_encode($dataset);
解决方案
假设我们正在谈论,$array
那么是的,你可以。有两种主要方法可以做到这一点:
声明变量
您可以在循环之前将变量声明while
为空数组:$array = []
$array = [];
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
$dataset = array(0);
$array[] = $row;
}
$dataset = array(
"echo" => 1,
"totalrecords" => count($array),
"totaldisplayrecords" => count($array),
"data" => $array,
);
echo json_encode($dataset);
null
聚结
在您的输出中,您可以使用合并运算符在不存在null
的事件中设置默认值:$array
$array ?? null
方法一
将对以下count
功能产生警告:
$dataset = array(
"echo" => 1,
"totalrecords" => count($array),
"totaldisplayrecords" => count($array),
"data" => $array ?? [],
);
方法二
这是应该这样做的方式:
$array = $array ?? [];
$dataset = array(
"echo" => 1,
"totalrecords" => count($array),
"totaldisplayrecords" => count($array),
"data" => $array,
);
推荐阅读
- python - 如何使用 Python 处理 SQL 转储
- php - 如何在数组中搜索重复值
- ruby-on-rails - Neo4j 急切加载 ActiveRel
- mediawiki - MediaWiki - 标记为修订,但没有待定修订
- python - 如何使用 python 在 csv 中添加元数据?
- java - jBehave 表格参数
- jsp - 为什么jsp
在我的html中添加了16个额外的标签? - javascript - 用户上传的firestore查询
- rabbitmq - 将 RabbitMQ 与动态队列和持久消息一起使用时的性能
- android - 如何使 PopupWindow 在背景触摸时不关闭,并且仍然能够在其 TextView 中输入文本