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

Is it necessary to Initialize / Declare variable in PHP?

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

无论我之前是否初始化/声明变量,我的代码仍然有效。

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

$cars = null;

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

echo $cars;

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

echo $cars;

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

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

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

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

P.S。 在您的情况下,该值应设置为“”(空字符串),而不是 null,因为您正在使用它来连接其他字符串。

编辑

正如其他人 (@n-dru) 所指出的,如果您不设置默认值,则会生成一条通知。

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

Notice: Undefined variable: cars

PHP 将假设它是空的并且结果字符串将是相同的,但您不应该因为需要记录该通知而导致额外的开销。所以性能明智的做法是先将其分配为空。

此外,使用 Aptana 等编辑器,您可能希望按 F3 查看给定变量的来源。将它初始化在某个地方真是太舒服了。所以调试-wise 变量出生的明显位置也更好。

这取决于:如果你在函数外声明一个变量,它有一个"global scope",这意味着它只能在函数外访问。

如果一个变量是在函数内部声明的,它有一个 "local scope" 并且只能在该函数内部使用。 (http://www.w3schools.com/php/php_variables.asp)

但似乎您在函数外部定义的变量 "cars" 即使没有 global 关键字也适用于您的函数...