この方法で変数に値を割り当てるだけの場合:最初に宣言する必要があります$array[]="value 1"
か?それがなくても動作するので、明らかにあなたはそうする必要はありませんが、なぜあなたはそれをするのですか?またはそれを行うことの利点は何ですか?$array[]="value 2"
$array=array()
5 に答える
主に読みやすさだと思います。誰か (または 5 か月後のあなた自身) がやって来て、「魔法のようにコードに現れる」ため、$array[] がどこから来たのか疑問に思うかもしれません。$myArray=array() を使用すると、少なくともわかります (変数が最初に表示されるのはここです)。
コードを構造化するときにも役立ちます。たとえば、最初に変数を最初に宣言すると
<?php
$myArray = array();
//...
そして一番下にテンプレートファイルをロードします$template->render('template.html', $myArray);
if ステートメントがあり、特定の条件が true の場合、配列に新しい値を代入するとします。しかし、条件が真でない場合、情報 (配列への新しい値) を渡さないため、配列は開始されません。配列が宣言されていない場合を除き、エラーが生成されます。しかし、そうなので、単に空の配列をロードするだけで、エラーは発生しません。
あなたが説明しているのは、宣言ではなく初期化です。$array が配列であることを宣言しているのではなく、値 (空の配列) を割り当てています。
このような初期化は、スコープを確立するために使用でき、おそらくコードを読みやすくすることができます (方法はわかりませんが) が、通常は特に空の配列が必要な場合にのみ実行されます。古典的な例は、[] 構文を使用して配列に追加する場合です。次の点を考慮してください。
$a = 'old value';
$a = array();
$a[] = 1;
$a[] = 2;
$a[] = 3;
2 行目がないと、エラーが発生します。
ところで、array() コマンドは普通の関数ではありません。これは言語構造であり、PHP 5.4 以降では、より短い [] 構文に置き換えることができます。
$a = 'old value';
$a = [];
$a[] = 1;
$a[] = 2;
$a[] = 3;
いいえ、しません。
一般に、空の配列で配列を初期化するのは、次のような場合だけです。
$list = array();
for($database_result as $row)
{
$list[] = $row['value'];
}
echo implode(', ', $list);
データベースの結果に行がないimplode
場合は、$ listが存在しないため、呼び出しは失敗します。
あなたが与えた例は、あなたがすでに知っている値のリストを設定するだけで、私は一般的に次のようにしています:
$array = array
(
"value 1",
"value 2",
);
ほとんどの場合、文書化を目的としています。変数が配列として使用されることを意図していることを開発者に思い出させます。
例として、CodeIgniter では値をビューに渡すことができますが、それらは配列でなければならず、例外がスローされます。変数を として宣言するarray()
と、単一の値を渡すつもりであっても、それを要素として配列に挿入する必要があることに注意してください。