ホームページ >バックエンド開発 >PHPチュートリアル >キー 07 および 08 を持つ PHP 配列が予期しない動作を示すのはなぜですか?
キー 07 および 08 の PHP 配列の異常
次のように定義された PHP 配列のキー 07 および 08 で異常な配列動作が発生しました:
<code class="php">$months[01] = 'January'; $months[02] = 'February';</code>
print_r($months) を使用して配列を出力しようとすると、キー 07 と 08 が欠落しており、代わりに September がキー 0 で表示されます。
理由と解決策
この不規則性は、PHP では 0 で始まる数字キーが 8 進数値として解釈されるために発生します。これは、07 が整数 7 として解析され、08 が 8 として解析されることを意味します。この問題を回避するには、キーから先頭の 0 を削除するだけです。
<code class="php">$months[7] = 'July'; $months[8] = 'August';</code>
これにより、キーが適切に認識されるようになります。
例
次のコードは、先頭の 0 を使用する場合と使用しない場合の違いを示しています。
<code class="php">echo 07; // prints 7 echo 010; // prints 8 echo 7; // prints 7 echo 10; // prints 10</code>
追加の注意事項
この動作は、UNIX ファイルのアクセス許可を指定するときによく使用されます:
<code class="php">chmod("myfile", 0660);</code>
ただし、他の目的で必要になることはほとんどありません。 PHP マニュアルには、数値キーと 8 進数値の詳細が記載されています。
以上がキー 07 および 08 を持つ PHP 配列が予期しない動作を示すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。