我有以下代码:
$final = [1 => 2];
$id = 1;
$final[$id][0] = 3;
这段代码看起来运行良好,但我收到了以下警告:
警告:第X行出现错误,无法将标量值用作数组(即该行的 $final[$id][0] = 3)。
有人能告诉我如何修复这个问题吗?
我有以下代码:
$final = [1 => 2];
$id = 1;
$final[$id][0] = 3;
这段代码看起来运行良好,但我收到了以下警告:
警告:第X行出现错误,无法将标量值用作数组(即该行的 $final[$id][0] = 3)。
有人能告诉我如何修复这个问题吗?
在向$final[$id]
数组添加元素之前,您需要将其设置为一个数组。可以使用以下任一方式进行初始化:
$final[$id] = array();
$final[$id][0] = 3;
$final[$id]['link'] = "/".$row['permalink'];
$final[$id]['title'] = $row['title'];
$final[$id] = array(0 => 3);
$final[$id]['link'] = "/".$row['permalink'];
$final[$id]['title'] = $row['title'];
$final[$id][] = 3;
,并将第二个情况简化为 $final[$id] = array(3);
:) - Tadeck这是因为你之前将变量声明为普通整数或字符串,然后稍后又试图将其转换为数组。
$data = [
"rs" => null
]
当像这样使用时,上述内容将完全正常:
$data["rs"] = 5;
$data = [
"rs" => [
"rs1" => null;
]
]
..
$data[rs][rs1] = 2; // this will throw the warning unless assigned to an array
rs
和 rs1
。这使它们成为未定义的常量,因此 $data [rs]
未定义。 - Doin同时确保您不要将其声明为数组,然后尝试将其他内容分配给该数组,例如字符串、浮点数、整数。我曾经遇到过这个问题。如果您输出一些回显,第一次看到了想要的结果,但在同一段代码的另一个执行中却没有。