タイトルにあるように、 $array0=$array[0] と $array0=$array['0'] はどちらも配列の最初の値を取得できます
一般的には使用されません 一重引用符で十分です
これらはすべて数値 0 であるため、違いはありません
コードが標準化され、エラーが発生しにくくなり、コードが簡単になるように、一般的な規則に従ってプログラムを作成することをお勧めします他の人が読むこと。
全て数字の0なので違いはありません
コードが標準化され、エラーが発生しにくくなり、他の人が読みやすくなるように、一般的なルールに従ってプログラムを作成することをお勧めします。
微妙な違いは、実行時に $array[0] が C の strtol 関数 (実際には __strtol_internal 関数) を呼び出す回数が 1 回少ないことです。一重引用符を追加すると、それが文字列であることを意味しますか? int ではありません
$array = array("1" => "bar1", "0" => "bar2")
$array[0] -> bar1
$array['0'] -> bar2
$array[0] -> bar1
上記の意見に同意します
角括弧内のキーの値は整数または文字列型であること ' ' は文字であることを意味します 文字列の型は、追加されない場合は整数型 0 とみなされます
var_dump(3.2 == '3.2'); //true
全て数字の0なので違いはありません
If 1 2 3 などに変えてみてはいかがでしょうか? ?
一重引用符を追加すると、文字列ではないということですか? $array = array("1 " => ; "bar1", "0" => "bar2")
$array[0] -> bar1
$array['0'] -> bar2
上記の意見に同意します
括弧内 キー値は整数または文字列タイプです。「 」は文字列のタイプを意味します。追加しない場合は、整数タイプ 0 とみなされます。数値に変換されると、数値インデックスにも変換されます
単一引用符を追加すると、それが非 int であることを意味しますか? $ array = array("1" => "bar1", "0" => " bar2")
数字である限り、数値型と文字型の違いはありません
var_dump(3.2 == '3.2'); //true
全て数字の0なので違いはありません
に置き換えるとどうなるでしょうか1 2 3 とかそんな感じでしょうか? ?
True を返すのは、データ型を自動変換して比較するためです。比較に === を使用すると false が返されます。
PHP は弱い型指定言語であり、動作中に適切なデータ型に自動的に変換されます。
テストを行った結果、次の結論に達しました:
引用符で囲まれた整数文字列は自動的に数値に変換され、整数以外の数値は変換されず、文字列インデックスとして扱われます。
引用符のない数値、非整数は丸められ、整数インデックスとして使用されます
さらに、定数として定義されていない文字列は、引用符なしでは正しい結果が得られますが、警告が表示されます。 。 間違い。