Ответ 1
Цитирование manual:
Преобразование в целое число
Чтобы явно преобразовать значение в целое число, используйте либо (int), либо (целое число)....
Есть ли разница между int
и integer
в PHP?
Какое новое или более рекомендуемое использование?
$a = (int)"3 euros";
echo $a; // $a==3
$a = (integer)"3 euros";
echo $a; // $a==3
Цитирование manual:
Преобразование в целое число
Чтобы явно преобразовать значение в целое число, используйте либо (int), либо (целое число)....
Нет.
Они одинаковы, оба передают значение целому числу, один - только четырьмя символами.
Разница возникает, когда мы используем тип hinting из 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 ...
Это не совсем так, на самом деле существует разница между 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".