int
とinteger
PHPの間に違いはありますか?
より新しい、またはより推奨される用途はどれですか?
$a = (int)"3 euros";
echo $a; // $a==3
$a = (integer)"3 euros";
echo $a; // $a==3
int
とinteger
PHPの間に違いはありますか?
より新しい、またはより推奨される用途はどれですか?
$a = (int)"3 euros";
echo $a; // $a==3
$a = (integer)"3 euros";
echo $a; // $a==3
PHP 7.0+ から型ヒントを使用すると、違いが生じます。
これは有効です
function getId(): int
{
return $id;
}
これではありません
function getId(): integer
{
return $id;
}
2 つ目は、「クラス整数」のオブジェクトを返すことを期待するため、奇妙な文になります。
Uncaught TypeError: Return value of getId() must be an instance of integer, integer returned in ...
マニュアルの引用:
整数への変換
値を整数に明示的に変換するには、(int)または(integer)キャストのいずれかを使用します。..。
これは正確ではありません。実際には 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 関数は 'int' を予期し、代わりに 'integer' を取得するため、コードのこの小さな部分は "E_RECOVERABLE_ERROR" を出力します。