ホームページ > バックエンド開発 > PHPチュートリアル > PHP 配列は整数変換せずに数値文字列をキーとして使用できますか?

PHP 配列は整数変換せずに数値文字列をキーとして使用できますか?

Barbara Streisand
リリース: 2024-12-02 09:55:12
オリジナル
862 人が閲覧しました

Can PHP Arrays Use Numeric Strings as Keys Without Integer Conversion?

PHP 配列での文字列整数キーの割り当て

PHP 配列を使用するには、通常、文字列または整数のキーに値を割り当てる必要があります。ただし、PHP で数値文字列を整数に変換せずに配列キーとして使用できるか?という疑問が生じます。次の例を考えてみましょう:

$blah = array('123' => 1);
var_dump($blah);
ログイン後にコピー

ここでは、次のような出力が期待できます:

array(1) {
  ["123"]=>
  int(1)
}
ログイン後にコピー

キー '123' は文字列として表されます。ただし、実際の出力は次のとおりです。

array(1) {
  [123]=>
  int(1)
}
ログイン後にコピー

これは、数値文字列 '123' が整数キー 123 に変換されたことを示しています。

PHP で数値が許可されないのはなぜですか文字列キー?

PHP によるとManual:

キーは整数または文字列のいずれかです。キーが整数の標準表現である場合、そのように解釈されます (つまり、「8」は 8 として解釈され、「08」は「08」として解釈されます)。

これは、次のことを意味します。 PHP は、数値文字列を文字列として引用した場合でも、整数として解釈します。

付録: JavaScript との比較オブジェクト キー

PHP でのこの動作は、JavaScript のオブジェクト キーと似ていますが、同一ではありません。 JavaScript では、数値文字列をオブジェクト キーとして使用でき、それらは文字列形式を保持します。

foo = { '10' : 'bar' };

foo['10']; // "bar"
foo[10]; // "bar"
foo[012]; // "bar"
foo['012']; // undefined!
ログイン後にコピー

この例では、「10」が文字列キーとして使用され、10 と 012 は両方とも解釈されます。整数として。ただし、引用符で囲まれた文字列としての「012」は、文字列「012」として解釈される PHP とは異なり、未定義として扱われます。

以上がPHP 配列は整数変換せずに数値文字列をキーとして使用できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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