PHP如何初始化/解释未定义的变量


How is an undefined variable initialized/interpreted by PHP?

好吧,我必须删除现有PHP 5.4脚本的警告,我不知道如何正确处理以下问题。

我有一个类似的源代码

if ($start_id_minus >= 0)
{
    $tmp_link = $link."&id=$start_id_minus";
    $tmp_html_previous .= "<a href='$tmp_link'><<&nbsp;previous</a>&nbsp;";
}

这会导致类似"Notice: Undefined variable: $tmp_html_previous in <5 lines below>" 的通知

所以我要做的是在这个"if"之前初始化变量。在这种情况下,$tmp_html_previous显然是一个字符串,所以我可以做的是:

$tmp_html_previous = '';

但我遇到了很多类似的情况,变量的"类型"对我来说并不明显。那么我如何正确初始化这些变量呢?使用NULL?使用0?用"?一点也不:var$tmp;?

0是要进行数学运算的任何变量的明显初始值。
truefalse是"布尔变量"的明显初始值
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始终是显而易见的解决方案。