这个问题的目的是只为我和许多像我这样的人获取知识或信息。
所以我的问题是:
是否需要在循环或函数之前初始化/声明变量?
提出这个问题是因为我的困惑,因为我之前是否初始化/声明变量我的代码是否仍然有效。
我正在分享我实际意思的演示代码:
$cars = null;
foreach ($build as $brand) {
$cars .= $brand . ",";
}
echo $cars;
OR
foreach ($build as $brand) {
$cars .= $brand . ",";
}
echo $cars;
这两段代码对我来说都是一样的,所以在开头初始化/声明一个变量是必要的吗?
答案 0 :(得分:27)
PHP不需要它,但始终初始化变量是一个好习惯。
如果不使用默认值初始化变量,PHP引擎将根据您使用变量的方式进行类型转换。这有时会导致意外行为。
简而言之,在我看来,始终为变量设置默认值。
P.S。 在您的情况下,值应设置为“”(空字符串),而不是null,因为您使用它来连接其他字符串。
修改的
正如其他人(@ n-dru)所说,如果你没有设定默认值,就会产生通知。
答案 1 :(得分:16)
你最好为它分配一个空字符串$cars = '';
,否则(如果你有错误报告),你应该看到一个通知:
注意:未定义的变量:cars
PHP将假设它是空的并且结果字符串将是相同的,但是您不应该因为需要记录该通知而导致额外的开销。所以性能 - 最好先将它分配为空。
此外,使用像Aptana等编辑器,您可能希望按F3
以查看给定变量的来源。将它初始化到某个地方真是太舒服了。所以调试 -wise也最好有变量出生的明显位置。
答案 2 :(得分:0)
取决于:如果在函数外部声明变量,它具有“全局范围”,这意味着它只能在函数外部访问。
如果在函数内声明了变量,则它具有“局部范围”,并且只能在该函数内部使用。 (http://www.w3schools.com/php/php_variables.asp)
但是,即使没有全局关键字,您在函数外定义的变量“cars”似乎也适用于您的函数...