好吧,我必须删除现有PHP 5.4脚本的警告,我不知道如何正确处理以下问题。
我有一个类似的源代码
if ($start_id_minus >= 0)
{
$tmp_link = $link."&id=$start_id_minus";
$tmp_html_previous .= "<a href='$tmp_link'><< previous</a> ";
}
这会导致类似"Notice: Undefined variable: $tmp_html_previous in <5 lines below>"
的通知
所以我要做的是在这个"if"之前初始化变量。在这种情况下,$tmp_html_previous显然是一个字符串,所以我可以做的是:
$tmp_html_previous = '';
但我遇到了很多类似的情况,变量的"类型"对我来说并不明显。那么我如何正确初始化这些变量呢?使用NULL?使用0?用"?一点也不:var$tmp;?
0
是要进行数学运算的任何变量的明显初始值。true
或false
是"布尔变量"的明显初始值null
对于其他任何事物都是一个很好的初始值。
在这种情况下,由于看起来像是在构建字符串,因此可以使用:
$tmp_html_previous = '';
或者:
$tmp_html_previous = NULL;
如果$tmp_html_previous是布尔值,则可以将默认值设置为true或false。
$tmp_html_previous = false;
如果你在做计算:
$tmp_html_previous = 0;
基本上,这一切都取决于应用程序的逻辑。
无论您想要什么,类型都会自动更改,因为PHP不是强类型的。
只需初始化即可;如果关心附加字符串,则string
:
$tmp = isset($tmp) ? $tmp : '';
然而,null
始终是显而易见的解决方案。