2012-05-17 16 views
12

PHPのintintegerには違いがありますか?整数と整数のPHPの相違

これは新しく推奨されていますか?

$a = (int)"3 euros"; 
echo $a; // $a==3 

$a = (integer)"3 euros"; 
echo $a; // $a==3 
+2

整数は整数の略です – Bono

+0

整数は整数の唯一のエイリアスです。 –

+0

@TufanBarışYıldırımマニュアルでソースを見つけることができませんでしたが、 'int'は' var_dump((整数)1)を考慮して整数よりも有利です '; 'int 1'(php 5.3.15)を出力します。 '(int)'もドキュメントで '(integer)'より頻繁に使用されます。おそらく整数は整数のエイリアスです...ちょうどニットピッキング:P – zamnuts

答えて

9

を引用:

は、明示的(INT)または (整数)のいずれかを、整数使用する値を変換する

を整数に変換キャスト。 ...

11

これらは同じであり、それらの両方は、1つの4つの文字でわずかterserあり、整数に値をキャスト。

Source

manual
+2

'is_int()'、 'is_integer()' PHPの悲しみ... – cvsguimaraes

3

これは実際にはあてはまりませんが、実際には整数と整数の間に違いがあります。ここで 簡単な例:

//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」を期待しているので、「E_RECOVERABLE_ERROR」 を印刷し、代わりに「整数」を取得します。

+4

間違った例...参照:http://php.net/manual /en/functions.arguments.php#functions.arguments.type-declaration '...ブール型をパラメータまたは戻り値の型として使用するには、bool型ではなく、クラスまたはインタフェースのブール値のインスタンスである引数または戻り値が必要です'。それがあなたのコードがうまくいかない理由です。整数/整数のビーコンではありません。 'testme((int)$ i)'や 'testme((integer)$ i)'を試すことができます。それは同じ結果です: "testme()に渡された引数1は整数、整数のインスタンスでなければなりません" – instead

10

我々は、PHPからヒンティングのタイプを使用するときに違いが生じるが7.0+

これは、これは2番目の1はあなたがオブジェクトを返すことを期待します

function getId(): integer 
{ 
return $id; 
} 

ない

function getId(): int 
{ 
return $id; 
} 

有効です。奇妙な文章を引き起こす「クラス整数」:

Uncaught TypeError: Return value of getId() must be an instance of integer, integer returned in ... 
+1

これは正しいです。問題は、2012年から受け入れられた回答がもう有効ではないということです。 – roselan