鍵07 和08 的PHP 數組異常
在PHP 數組中遇到鍵07 和08 的異常數組行為,定義如下:
<code class="php">$months[01] = 'January'; $months[02] = 'February';</code>
嘗試使用print_r($months) 列印陣列時,缺少鍵07 和08,而出現9 月,鍵值為0。
原因與解
出現不規則現像是因為以 0 開頭的數字鍵在 PHP 中被解釋為八進位值。這意味著 07 被解析為整數 7,08 被解析為 8。若要避免此問題,只需從鍵中刪除前導 0。
<code class="php">$months[7] = 'July'; $months[8] = 'August';</code>
這將確保正確識別鍵並且數組的行為符合預期。
範例
以下程式碼示範了使用前導0 與不使用前導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 手冊提供了有關數字鍵和八進制值的更多詳細資訊。
以上是為什麼具有鍵 07 和 08 的 PHP 陣列會表現出意外行為?的詳細內容。更多資訊請關注PHP中文網其他相關文章!