簡體   English   中英

如何將以'+'符號開頭的數組的數字鍵轉換為整數類型?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM