コードAまたはBのどちらがより良い習慣です:
A:
$array = array();
$array[] = 'value';
B(配列を宣言せずに配列を使用します):
$array[] = 'value'
A
優れている。 他の何人かの人々が言及し、私が最初に見落としたように、他の変数タイプや以前に定義された変数ではなく、必要なときにそれがあなたが望むものであることB
実行するとPHPNotice
になりますが、それでも同じように機能します。A
を確認することによって、コードをより堅牢にします。$array
編集:未定義の変数を使用するときにPHPが通知をスローしないのは、初期化されていない配列に追加するときです。php.netから:
E_NOTICEレベルのエラーは、初期化されていない変数を操作する場合に発行されますが、初期化されていない配列に要素を追加する場合には発行されません。
ベストプラクティスはそれを宣言しています。
理由: 何らかの理由で誰かが register_globals をオンにし、$array を使用する前に設定した場合、奇妙な結果になる可能性があります。宣言すると、常に空の配列があることがわかります。
または C: $array = array('value');
A の方が良い方法ですが、既知の値の場合は
$array=array('value');を実行します。
IMO は、スクリプトの複雑さに依存します。たとえば foreach ループの $i と同じように、配列を多用する場合があります。
最初に配列を定義することにより、それが新しい空の配列であることを確認します。これにより、以前の使用からのデータが含まれていないことが保証されます。
A
B
同じ理由で@G-Nuggetが言ったよりも優れていますが、当然のことながら、変数がどこからともなく現れると、コードが読みにくくなります。
マニュアルによると、角括弧構文による作成/変更に言及している部分は、実際に$array[] = 'value';
は、変数に値を割り当てる前に変数を宣言して配列を作成するのと同じくらい正しいことを意味します。
言い換えれば、それについて心配する必要はありません。