1
クラスの最上部にある変数を宣言するとき、私がしなければ、それは問題ではない:配列変数は常に配列として宣言する必要がありますか?
private $garbage_values;
の代わり:もちろん
private $garbage_values = [];
を、参照するクラス内foreach
のループが存在します配列が空である可能性があります。これは問題ですか?
クラスの最上部にある変数を宣言するとき、私がしなければ、それは問題ではない:配列変数は常に配列として宣言する必要がありますか?
private $garbage_values;
の代わり:もちろん
private $garbage_values = [];
を、参照するクラス内foreach
のループが存在します配列が空である可能性があります。これは問題ですか?
基本的には、任意のタイプの変数をforeach
のように動作させたい場合は、iterable
疑似型にする必要があります。
foreach
のiterable
疑似型に該当しない変数を使用すると、エラーが発生します。
private $foo;
このような場合は、基本的にnull
という値が含まれており、iterable
には含まれないため、失敗します。
あなたがprivate $foo = [];
を使用している場合、それは確かにiterable
疑似型に分類されない空の配列を含み、かつforeach
で完璧に使用することができ、一方。
私が知っている限り、実際にはそうではありません。 PHPはかなり柔軟です。しかし、最初に配列として宣言しないと、配列をforeachで実行する前に必ず配列をチェックする必要があります。 –
ああ - それは私が意味するものです。空のときに 'foreach'を実行しようとすると、' private $ value'はエラーを生成しますか? – daninthemix
はい。したがって、それを空の配列にして、チェックする必要はありません。または、foreachを実行する前に小切手を追加してください。とにかく、スクリプトを実行したくない場合、phpfiddleでこれらの小さなものを簡単にテストできます。 –