在php中比较两个整数

3

我需要在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) - Mark Baker
2个回答

4

在php中,将数字前加0视为八进制数,并且打印出十进制等效的00713132161838,实际上是120370289。在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 将它们转换为十进制整数值。如需更多信息,请阅读 PHP 中的 intval 函数


你可以接受这个答案吗?这是关于编程的内容。 - Veshraj Joshi

1

您可以通过 ltrim 删除前导零。

例如 -

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接