Is there any difference between int
and integer
in PHP?
Which is the newer or more recommended use?
$a = (int)\"3 euros\";
This is not quite true, there is actually a difference between int and integer. Here a simple example:
//print_r('PHP version: '.phpversion().'<br />');
//PHP version: 5.5.23
$i = '1';
function testme(int $j){
print_r ($j);
}
testme(intval($i));
This little portion of code will print an "E_RECOVERABLE_ERROR" since testme function is expecting 'int' and get 'integer' instead.
Quoting the manual:
Converting to integer
To explicitly convert a value to integer, use either the (int) or (integer) casts. ...
The difference arises when we use type hinting from php 7.0+
this is valid
function getId(): int
{
return $id;
}
this is not
function getId(): integer
{
return $id;
}
the second one will expect you to return an object of a 'class integer', which will cause a strange sentence:
Uncaught TypeError: Return value of getId() must be an instance of integer, integer returned in ...
No.
They are the same, they both cast the value to an integer, one is just terser by four characters.
Source.