PHP では、配列は 1 つ以上のキーと値のペアで構成される順序付けされたデータのコレクションであり、キーと値のペアの添字が配列のインデックスとして使用されます。配列では、各要素に一意のインデックスがあり、一意のインデックスには数値、文字列、またはその他の型を使用できます。
しかし、よく次のような問題に遭遇します。なぜ PHP 配列には添え字 5 がないのですか?
実際には、PHP 配列には添字 5 が存在する可能性がありますが、場合によっては、無視されたり、他の添字によって上書きされたりする可能性があります。
理由は次のとおりです:
1. 開始添字は 0 から始まります
PHP では、配列の開始添字は 1 からではなく 0 から始まります。したがって、配列を宣言するとき、配列の最初の要素のインデックスは 1 ではなく 0 になります。これが、PHP プログラマーが $my_array[0] を使用して配列の最初の要素を表すのをよく見かける理由です。
2. 自動型変換
PHP は動的型付け言語であり、変数の型を自動的に変換します。これは、数値以外の文字列添字を配列インデックスとして使用すると、PHP がそれを自動的に整数型に変換することを意味します。たとえば、次のコード:
$my_array["hello"] = "world";
echo $my_array["hello"]; //出力 "world"
echo $my_array[0]; //出力 "world"
ここでは、配列の添字として文字列「hello」を使用していますが、この文字列には値がないため、PHP はそれを変換します。 0 に設定すると、 $my_array[0] は "world" を出力します。
3. 他の添字が 5 をカバーする可能性がある
もう 1 つの理由は、場合によっては、配列の他の添字が 5 の添字をカバーする可能性があることです。たとえば、次のコードでは:
$my_array = array(0, 1, 2, 3, 4, "five" => 5, 6);
echo $my_array[ 5]; //Output ""
ここでは、添字「five」を持つ要素の値を 5 に設定します。 「five」は数値の添字ではないため、配列内のインデックスは数値ではなく連想になります。したがって、この配列では、インデックス 5 が関連するインデックス "five" によってすでに占有されているため、$my_array[5] は空の文字列を出力します。
概要:
PHP では、配列には数値、文字列、連想型、その他の型を含む任意のインデックスを含めることができます。配列の添字は 0 からカウントされ、PHP が自動的に型変換を実行するため、文字列、浮動小数点数、その他の型を配列のインデックスとして使用できます。同時に、配列では、連想配列など、複数の要素が同じ添字を共有できます。したがって、配列インデックス 5 の要素が存在しない場合でも、他のメソッドを使用してこの位置の要素にアクセスできます。
以上がPHP 配列の添字に 5 がないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。