PHP:在循环中使用之前声明变量的正确方法

时间:2008-10-28 16:12:47

标签: php performance loops

我有一个内置循环的变量。类似的东西:

$str = "";
for($i = 0; $i < 10; $i++) $str .= "something";

如果省略$ str =“”,我会得到未定义的变量通知,但我认为php第一次看到未声明的变量时会自动声明一个变量吗?

我该怎么做?

4 个答案:

答案 0 :(得分:15)

您将获得未定义的变量,因为您将自身的值与另一个值连接起来。

相当于

  

$str = $str . "something";

所以,它不能说出初始值是什么。它相当于:

  

$str = [undefined value] . "something";

[undefined value]"something"串联的结果是什么?口译员不能说...

所以,你必须先将""放在变量中,然后像你一样启动变量的值。

HTH

答案 1 :(得分:8)

如果你真的需要让它更干净,你可以做到:

for($i = 0, $str = ''; $i < 10; $i++) $str .= "something";

但你所拥有的就是我通常做的事情。 vlceBerg解释得很好。

答案 2 :(得分:4)

不使用自动声明功能更安全 - 这就是它发出通知的原因。通知是最低级别的警告,默认情况下不会显示。大多数旧的PHP应用程序会在你打开它们时发出很多通知。

答案 3 :(得分:2)

自动声明的PHP变量被注册为未定义,这就是您收到通知的原因。

通常最好在使用它们之前声明PHP变量,尽管我们之间很多懒惰,包括我自己并不总是这样做。