7

ループに組み込まれている変数があります。何かのようなもの:

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

$ str = ""を省略すると、未定義の変数通知が表示されますが、phpは、宣言されていない変数を最初に検出したときに変数を自動宣言すると思いましたか?

どうすればこれを正しく行うことができますか?

4

4 に答える 4

15

自分自身の値を別の値と連結しているため、未定義の変数を取得します。

に相当する

$str = $str . "something";

そのため、初期値が何であるかを言うことはできません。これと同等です:

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

[undefined value]との連結の結果は何"something"ですか?通訳は言うことができません...

したがって、""変数の値を開始するには、最初に変数を入力する必要があります。

HTH

于 2008-10-28T16:15:59.980 に答える
8

あなたが本当にそれをよりきれいにする必要があるなら、あなたはそれをすることができます:

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

しかし、あなたが持っているのは私が通常していることです。vlceBergはそれをうまく説明しています。

于 2008-10-28T16:18:32.487 に答える
4

自動宣言機能を使用しない方が安全です。そのため、通知が発行されます。通知は最低レベルの警告であり、デフォルトでは表示されません。ほとんどの古いPHPアプリは、オンにすると多くの通知を発行します。

于 2008-10-28T16:17:22.003 に答える
2

自動宣言されたPHP変数は未定義として登録されるため、通知を受け取ります。

私たちの間で怠惰な人の多くは、私自身も含めて、PHP変数を使用する前に宣言する方が一般的には良いですが、常にそうするわけではありません。

于 2008-10-28T16:21:40.983 に答える