20

intintegerPHPの間に違いはありますか?

より新しい、またはより推奨される用途はどれですか?

$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;
}

2 つ目は、「クラス整数」のオブジェクトを返すことを期待するため、奇妙な文になります。

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

いいえ。

それらは同じで、どちらも値を整数にキャストします。1 つは 4 文字だけ簡潔です。

ソース

于 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));

testme 関数は 'int' を予期し、代わりに 'integer' を取得するため、コードのこの小さな部分は "E_RECOVERABLE_ERROR" を出力します。

于 2015-10-14T09:43:32.263 に答える