1

コードAまたはBのどちらがより良い習慣です:

A:

    $array = array();
    $array[] = 'value';

B(配列を宣言せずに配列を使用します):

    $array[] = 'value'
4

7 に答える 7

2

A優れている。 B実行するとPHPNoticeになりますが、それでも同じように機能します。 他の何人かの人々が言及し、私が最初に見落としたように、他の変数タイプや以前に定義された変数ではなく、必要なときにそれがあなたが望むものであることAを確認することによって、コードをより堅牢にします。$array

編集:未定義の変数を使用するときにPHPが通知をスローしないのは、初期化されていない配列に追加するときです。php.netから:

E_NOTICEレベルのエラーは、初期化されていない変数を操作する場合に発行されますが、初期化されていない配列に要素を追加する場合には発行されません。

于 2013-02-15T19:20:30.717 に答える
2

ベストプラクティスはそれを宣言しています。

理由: 何らかの理由で誰かが register_globals をオンにし、$array を使用する前に設定した場合、奇妙な結果になる可能性があります。宣言すると、常に空の配列があることがわかります。

于 2013-02-15T19:21:01.257 に答える
2

または C: $array = array('value');

于 2013-02-15T19:26:13.957 に答える
2

A の方が良い方法ですが、既知の値の場合は
$array=array('value');を実行します。

このサイトを試してください

于 2013-02-15T19:28:13.953 に答える
0

IMO は、スクリプトの複雑さに依存します。たとえば foreach ループの $i と同じように、配列を多用する場合があります。

最初に配列を定義することにより、それが新しい空の配列であることを確認します。これにより、以前の使用からのデータが含まれていないことが保証されます。

于 2013-02-15T19:21:36.610 に答える
0

AB同じ理由で@G-Nuggetが言ったよりも優れていますが、当然のことながら、変数がどこからともなく現れると、コードが読みにくくなります。

于 2013-02-15T19:24:22.750 に答える
0

マニュアルによると、角括弧構文による作成/変更に言及している部分は、実際に$array[] = 'value';は、変数に値を割り当てる前に変数を宣言して配列を作成するのと同じくらい正しいことを意味します。

言い換えれば、それについて心配する必要はありません。

于 2013-02-15T19:43:18.453 に答える