PHP中的int
和integer
之间是否有区别?int与整数之间的PHP差异
哪个更新或更推荐使用?
$a = (int)"3 euros";
echo $a; // $a==3
$a = (integer)"3 euros";
echo $a; // $a==3
PHP中的int
和integer
之间是否有区别?int与整数之间的PHP差异
哪个更新或更推荐使用?
$a = (int)"3 euros";
echo $a; // $a==3
$a = (integer)"3 euros";
echo $a; // $a==3
引述manual:
转换为整形
为了明确地将一个值转换为整数,使用(INT)或 (整数)管型。 ...
这不是真的,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));
此代码小部分会因为TESTME函数需要“诠释”打印“E_RECOVERABLE_ERROR” 并获得“整数”来代替。
错误的例子...请参阅:http://php.net/manual /en/functions.arguments.php#functions.arguments.type-declaration'...使用布尔值作为参数或返回类型将需要一个参数或返回值,它是类或接口布尔的实例,而不是布尔类型'。这就是为什么你的代码无法正常工作。不是int/integer的beacuase。你可以尝试'testme((int)$ i)'或'testme((integer)$ i)'。它是相同的结果:“传递给testme()的参数1必须是整数的一个实例,整数给出” – instead
当我们使用类型从PHP暗示的产生差异7.0+
这是有效的
function getId(): int
{
return $id;
}
这不是
function getId(): integer
{
return $id;
}
第二个会期望你返回一个对象'class integer',这会造成一个奇怪的句子:
Uncaught TypeError: Return value of getId() must be an instance of integer, integer returned in ...
这是正确的。问题是,2012年接受的答案不再有效。 – roselan
int是整数的简写 – Bono
int只是整数的别名。 –
@TufanBarışYıldırım我无法在手册中找到源代码,但是考虑到'var_dump((integer)1)''outputs' int 1'(php 5.3.15); '(int)'也比文档中的'(integer)'更经常使用。也许整数是int的别名...只是nit-picking:P – zamnuts