gpt4 book ai didi

php - 如何删除 PHP 警告 : count() parameter must be an array that implements Countable

转载 作者:行者123 更新时间:2023-12-03 09:08:46 24 4
gpt4 key购买 nike

关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。












想改进这个问题?将问题更新为 on-topic对于堆栈溢出。

3年前关闭。




Improve this question




我知道这个问题已经被问过很多次了,但我找不到任何对我有帮助的东西。

当我尝试计算 json_decode 数组的行数时,我的 PHP 代码返回警告“警告:count():参数必须是实现 Countable 的数组或对象”,但代码有效。我怎样才能摆脱这个警告?

这是代码(它在数据库中创建匿名字段):

//SQL Query to select my data and get "myVar"
while ($row = $result->fetch_assoc()) {
$l__myVar = json_decode($row["myVar"], true);
$l__id = $row["id"];

for ($i = 0; $i < count($l__myVar["node1"]["node1"]); $i++) {
$l__myVar["node1"]["node1"][$i]["fname"] = SUBSTR(MD5(RAND()) . MD5(RAND()), 1, 6);
$l__myVar["node1"]["node1"][$i]["lname"] = SUBSTR(MD5(RAND()) . MD5(RAND()), 1, 6);
}

$myVar = json_encode($l__myVar);
//Then I am doing my SQL update
}

正如我所说,它有效,并且对于解码的 JSON 的每个节点,它都会执行“SUBSTR(MD5(RAND()).MD5(RAND()), 1, 6)”,但我的日志中一直有警告.

我不想禁用所有警告,而只想找到一种方法来纠正这个警告。

谢谢 !

编辑:

感谢评论,我终于设法修复它。看起来有时它不是数组而是“NULL”,所以我添加了这个:
if(is_array($l__myVar["node1"]["node1"])){
//Code
}

elseif (!is_array($l__myVar["node1"]["node1"])) {
continue;
}

这样,PHP 继续运行而不显示任何错误消息。

最佳答案

似乎有时$l__myVar["node1"]["node1"]不是数组,避免警告使用

if(is_array($l__myVar["node1"]["node1"])){
for ($i = 0; $i < count($l__myVar["node1"]["node1"]); $i++) {
$l__myVar["node1"]["node1"][$i]["fname"] = SUBSTR(MD5(RAND()) . MD5(RAND()), 1, 6);
$l__myVar["node1"]["node1"][$i]["lname"] = SUBSTR(MD5(RAND()) . MD5(RAND()), 1, 6);
}
}else{
/*Your Code*/
}

关于php - 如何删除 PHP 警告 : count() parameter must be an array that implements Countable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55950442/

24 4 0