[英]How the numerical key of an array preceding with '+' sign is casted into integer type?
根據PHP手冊
鍵可以是整數或字符串。 該值可以是任何類型。
此外,將進行以下按鍵強制轉換:
- 包含有效十進制整數的字符串(除非數字前面帶有+號)將轉換為整數類型。 例如,鍵“ 8”實際上將存儲在8以下。另一方面,“ 08”將不是強制轉換,因為它不是有效的十進制整數。
根據關於報價我寫了以下代碼。 在下面的代碼中,鍵+8被強制轉換為整數類型。 如上述規則所述,這怎么可能發生?
<?php
$array = array(
+8 => "a"
);
var_dump($array);
?>
輸出:
array(1) {
[8]=>
string(1) "a"
}
因為+8
是整數文字,因此+號是隱式的,添加或不添加都沒有區別:
var_dump(+8, 8);
int(8) int(8)
文檔中沒有任何內容表明PHP會將整數轉換為字符串。 我認為您只是誤讀了這句話(強調我的意思):
包含有效十進制整數的字符串 ,除非數字前面帶有+號
$array = array(
7 => 'a',
+8 => 'b',
'+9' => 'c',
);
var_dump(array_keys($array));
array(3) { [0]=> int(7) [1]=> int(8) [2]=> string(2) "+9" }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.