0

好吧,我必须删除现有 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;?

4

4 回答 4

0

0是您要对其进行数学运算的任何变量的明显初始值。
true或者false是“布尔变量”的明显初始值。
null对于其他任何东西来说都是一个很好的初始值。

于 2012-09-10T07:44:40.390 回答
0

在这种情况下,由于看起来好像您正在构建一个字符串,您可以使用:

$tmp_html_previous = '';

或者:

$tmp_html_previous = NULL;

如果 $tmp_html_previous 是一个布尔值,您可以将默认值设置为 true 或 false。

$tmp_html_previous = false;

如果你在做计算:

$tmp_html_previous = 0;

基本上,这完全取决于您的应用程序的逻辑。

于 2012-09-10T07:44:46.227 回答
-1

无论你想要什么,类型都会自动改变,因为 PHP 不是强类型的。

于 2012-09-10T07:41:26.680 回答
-1

随便初始化什么;如果担心附加执行此操作的字符串string

$tmp = isset($tmp) ? $tmp : '';

但是,null始终是显而易见的解决方案。

于 2012-09-10T07:44:42.267 回答