2016-09-21 74 views
0

我需要比較PHP中的兩個整數。我有這個例子:比較php中的兩個整數

$a=00713132161838; 
$b=713132161838; 

我怎樣才能得到這個比較是真的?我需要從$ a中刪除前導零。

我用number_format功能:

echo number_format($a,0,"",""); 
120370289 

爲什麼這樣?

+1

'$ a = 00713132161838;'當您聲明整數值時出現零點意味着該值被視爲八進制值,而不是小數[PHP文檔](http://www.php.net/) manual/en/language.types.integer.php) –

回答

2

前導零到PHP中的數字是八進制數,並將其打印120370289這是00713132161838十進制等效值。在PHP中有兩種比較因而,

(`00713132161838`==713132161838) // return true 
(`00713132161838`===713132161838) // return false and strict comparison 
(00713132161838==713132161838) 
// this will never give you true value because 007.....8 is the octal, number first converted to decimal and comparison will be there 

,所以你可以使用單/雙引號的包的數量,然後將它們轉換爲十進制整數使用intval以獲取更多信息,您可能需要閱讀intval function in php

+0

如果你有答案,你可以接受答案......? –

0

你可以刪除ltrim

例如前導零 -

$str = ltrim($str, '0');