可能的重复:
PHP:“注意:未定义的变量”和“注意:未定义的索引” https://stackoverflow.com/questions/4261133/php-notice-undefined-variable-and-notice-undefined-index
最近打开了错误,我在递增到新数组索引的行上捕获了“未定义索引”和“未定义偏移量”错误。
这是一个非常基本的例子。
for($i = 0; $i<10; $i++)
{
$arr['var1'] += $val1[$i];
$arr['var2'] += $val2[$i];
}
我收到错误,因为在第一次迭代时 $arr['var1'] 未设置。
我发现两者都检查索引是否已设置
if (!isset($arr['var1'])) {
$arr['var1'] = 0;
}
$arr['var1'] += $val1[$i];
• and •
在递增 for 循环之前自动将索引设置为 0 可以停止错误消息。
我的问题是,我需要解决其中大约 150 个问题,解决这个问题的最佳方法是什么。
检查每一项的 isset,还是预先定义每一项的 val 值为 0?
你应该always初始化你的变量。这绝对是几乎所有语言的最佳实践,并且访问未设置的变量被认为是一个极其坏的习惯。你开发的软件应该总是有错误on.
您的代码应为:
$arr['var1'] = $arr['var2'] = 0;
for($i = 0; $i<10; $i++)
{
$arr['var1'] += $val1[$i];
$arr['var2'] += $val2[$i];
}
接受打击,修复所有 150 次出现的此问题,然后从错误中吸取教训。下次正确编写代码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)