ホームページ > バックエンド開発 > PHPの問題 > PHP 配列の添字に 5 がないのはなぜですか?

PHP 配列の添字に 5 がないのはなぜですか?

PHPz
リリース: 2023-04-25 09:49:51
オリジナル
508 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート