20

intPHP和integerPHP之间有什么区别吗?

哪个是更新的或更推荐的用途?

$a = (int)"3 euros";
echo $a;  // $a==3

$a = (integer)"3 euros";
echo $a; // $a==3
4

4 回答 4

60

当我们使用 php 7.0+ 的类型提示时,就会出现差异

这是有效的

function getId(): int 
{
 return $id;
}

这不是

function getId(): integer
{
 return $id;
}

第二个会期望你返回一个“类整数”的对象,这会导致一个奇怪的句子:

Uncaught TypeError: Return value of getId() must be an instance of integer, integer returned in ...
于 2017-06-01T07:42:47.730 回答
11

不。

它们是相同的,它们都将值转换为整数,一个只是四个字符的更简洁。

来源

于 2012-05-17T13:08:16.890 回答
5

引用手册

转换为整数

要将值显式转换为整数,请使用 (int) 或 (integer) 强制转换。...

于 2012-05-17T13:09:22.597 回答
2

这并不完全正确,int 和 integer 之间实际上是有区别的。这里有一个简单的例子:

//print_r('PHP version: '.phpversion().'<br />');
//PHP version: 5.5.23

$i = '1';

function testme(int $j){
  print_r ($j);
}
testme(intval($i));

这一小部分代码将打印一个“E_RECOVERABLE_ERROR”,因为 testme 函数需要 'int' 而得到 'integer'。

于 2015-10-14T09:43:32.263 回答