この質問の目的は、私と私のような多くの人だけのために知識や情報を得ることです。
だから私の質問は:
ループまたは関数の前に変数を初期化/宣言する必要がありますか?
この質問をすることは混乱を招きます。なぜなら、変数を初期化/宣言する前にコードが機能するかどうかだからです。
私が実際に意味するもののデモコードを共有しています:
$cars = null;
foreach ($build as $brand) {
$cars .= $brand . ",";
}
echo $cars;
OR
foreach ($build as $brand) {
$cars .= $brand . ",";
}
echo $cars;
どちらのコードも同じように機能するため、最初に変数を初期化/宣言する必要がありますか?
PHPでは必要ありませんが、常に変数を初期化することをお勧めします。
変数をデフォルト値で初期化しない場合、PHPエンジンは変数の使用方法に応じて型キャストを行います。これにより、予期しない動作が発生する場合があります。
要するに、私の意見では、常に変数のデフォルト値を設定します。
追伸あなたの場合、他の文字列を連結するために値を使用しているため、値はnullではなく ""(空の文字列)に設定する必要があります。
編集
他の人(@ n-dru)が指摘したように、デフォルト値を設定しないと、通知が生成されます。
空の文字列$cars = '';
を割り当てることをお勧めします。それ以外の場合(エラー報告がある場合)、通知が表示されます。
通知:未定義変数:車
PHPは、それが空であり、結果の文字列は同じであると想定しますが、その通知をログに記録する必要があるために余分なオーバーヘッドが発生しないようにする必要があります。 performance-wiseでは、最初に空を割り当てる方が良いでしょう。
また、Aptanaなどのエディターを使用して、F3
を押して、指定された変数の発生元を確認することもできます。そして、どこかで初期化するのはとても快適です。 debugging-wiseでは、変数の出生の明確な場所を確保することもお勧めです。
依存します:関数の外で変数を宣言する場合、その変数は「グローバルスコープ」を持ちます。つまり、変数は関数の外からしかアクセスできません。
関数内で変数が宣言されている場合、変数は「ローカルスコープ」を持ち、その関数内でのみ使用できます。 ( http://www.w3schools.com/php/php_variables.asp )
ただし、関数の外部で定義した変数「cars」は、グローバルキーワードがなくても関数に対して機能するようです...