2
給定一個浮點數,一個JSON編碼和隨後的解碼,可變類型float(或雙擊)後有時它不保留。PHP JSON有時轉換浮點數爲整數
$n1 = 1.23;
$json = json_encode($n1); // '1.23'
$n2 = json_decode($json);
$t1 = gettype($n1); // 'double'
$t2 = gettype($n2); // 'double'
$d = $n1 === $n2; // true
然而,當小數「0」的結果是不同的:
$n1 = 1.0;
$json = json_encode($n1); // '1'
$n2 = json_decode($json);
$t1 = gettype($n1); // 'double'
$t2 = gettype($n2); // 'integer'
$d = $n1 === $n2; // false
我不得不斷定的JSON編碼/解碼功能的行爲是基於數據值,因此難以預測,並最終相當不一致。
有什麼辦法,以確保在JSON編碼/解碼過程中保持變量的類型?