是否有必要在PHP中初始化/声明变量?

Ome*_*mer 28 php variables initialization declaration

这个问题的目的是只为我和许多像我这样的人获取知识或信息.

所以我的问题是:

是否有必要在循环或函数之前初始化/声明变量?

问这个问题是我的困惑,因为我之前是否初始化/声明变量我的代码是否仍然有效.

我正在分享我实际意思的演示代码:

$cars = null;

foreach ($build as $brand) {
     $cars .= $brand . ",";
}

echo $cars;
Run Code Online (Sandbox Code Playgroud)

要么

foreach ($build as $brand) {
     $cars .= $brand . ",";
}

echo $cars;
Run Code Online (Sandbox Code Playgroud)

这两段代码对我来说都是一样的,所以在开始时初始化/声明一个变量是必要的吗?

Ale*_*der 32

PHP不需要它,但始终初始化变量是一个好习惯.

如果不使用默认值初始化变量,PHP引擎将根据您使用变量的方式进行类型转换.这有时会导致意外行为.

所以简而言之,在我看来,总是为变量设置一个默认值.

PS在您的情况下,值应设置为""(空字符串),而不是null,因为您使用它来连接其他字符串.

编辑

正如其他人(@ n-dru)所指出的那样,如果您没有设置默认值,则会生成通知.

  • 不,他们不一样.一个是string类型,另一个是null.使用is_null函数时,您可以看到差异.`is_null($ null)//返回true并生成通知``empty("")//返回true` (5认同)

n-d*_*dru 17

您最好为其分配一个空字符串$cars = '';,否则(如果您有错误报告),您应该看到一个通知:

注意:未定义的变量:汽车

PHP将假定它是空的并且结果字符串将是相同的,但您不应该因为需要记录该通知而导致额外的开销.因此,性能方面最好先将其分配为空.

此外,使用像Aptana等编辑器,您可能希望按下F3以查看给定变量的来源.将它初始化到某个地方真是太舒服了.所以在调试方面,最好有变量诞生的明显位置.