我知道在PHP中使用它们之前没有必要定义变量和数组。但是当我运行以下代码时,我正面临'Undefined Variable mat1'和'Undefined Variable mat2'错误:
for($i=0;$i<3;$i++)
{
for($j=0;$j<3;$j++)
{
$ans[$i][$j] = 0;
for($k=0;$k<3;$k++)
{
$ans[$i][$j] = $ans[$i][$j] + $mat1[$i][$k]*$mat2[$k][$j];
}
}
}
var_dump($ans);
我尝试用以下两行来定义它们:
$mat1=array(array());
$mat2=array(array());
但错误已更改为“未定义偏移量:...”错误。 我在代码中遗漏了什么吗?!
答案 0 :(得分:1)
为什么我收到未定义的变量错误?
因为你还没有定义任何东西。
只需使用
$mat1 = $mat2 = array(
0 => array(
0 => 1,
1 => 1,
2 => 1,
3 => 1,
4 => 1,
5 => 1,
),
1 => array(
0 => 2,
1 => 2,
2 => 2,
3 => 2,
4 => 2,
5 => 2,
),
2 => array(
0 => 3,
1 => 3,
2 => 3,
3 => 3,
4 => 3,
5 => 3,
)
);
并测试它
答案 1 :(得分:1)
数组与普通变量不同,所以你需要定义它,最重要的是在访问数组的任何索引之前,数组必须有值。否则你将得到未定义的偏移误差。
Anotherthing是指,您可以简单地定义$mat1=array(array())
,而不是使用$mat1=array()
,这也适用于多维数组。
所以除非你的数组实际上有这些索引的值(即使是空值),否则你将得到未定义的偏移量错误。
答案 2 :(得分:0)
您仍需要拥有数据才能使用数组。如果mat1只是一个空数组,那么尝试访问$ mat1 [1]会得到未定义的偏移量错误