2016-05-11 8 views
3

間の差がある、と私はそれが非常によく似strcmp()に(同じでない場合)、見つけたもの。我々は新しい演算子、宇宙船演算子<code><=></code>を持っている7</strong><strong>PHPでのstrcmp()とスペースシップ演算子(<=>)

それらの間に違いはありますか?

編集:ImはWhat is <=> (the 'Spaceship' Operator) in PHP 7?またはWhat is <=> (the 'Spaceship' Operator) in PHP 7?

+1

PHP7で<=>( 'スペースシップ'オペレータ)とは何ですか?](http://stackoverflow.com/questions/30365346/what-is-the-spaceship-operator-in-php-7 ) –

+0

[RFC](https://wiki.php.net/rfc/combined-comparison-operator) '動作のstrcmp()やversion_compare()に似ていますが、以下のような一般的なPHPの値でも使用できます。 <, <=, ==, > =、>。と同じセマンティクス。 –

+0

@ MarcosPrezGude iveはそれを見て、私の質問に答えません。私の質問は違いとは何か、私はそれについての参照が表示されません。 – AndreL

答えて

3

のstrcmpを参照さではない、それら両者の差を求めて - それは "バイナリセーフ" 文字列比較

宇宙船演算子のために機能です(< =>)は、左側が小さい場合は-1を、等しい場合は0を、左側が大きい場合は1を返します。 <、< =、==、> =、>と同じセマンティクスを持つすべての汎用PHP値で使用できます。この演算子は、動作がstrcmp()またはversion_compare()と似ています。この演算子は整数で使用することができ、山車など文字列、配列、オブジェクト、

たとえばあなたが配列またはオブジェクトを比較することができ、かつフロートによって、あなたは異なる結果を得る:

$var1 = 1.3; 
$var2 = 3.2; 
var_dump($var1 <=> $var2); // int(-1) 
var_dump(strcmp($var1, $var2)); // int(-2) 
を公式DOによると

そして、他の違い...

More example this

+0

偉大な答えは、私は前にそれをテストしていない –

0

"strcmp"が "< 0、= 0または> 0"を返している間に "0"より小さい整数を返します。したがって、そこに違いは見当たりません。 。

そして、以下のように我々が返される正確などの値を気にしない、しかし、何かが明らかにされているため、通常は、これで十分です:

は5 < => 1をエコー; // 1
echo strcmp(5,1); // 4

私は宇宙船から1,0以外の値を得ることはできませんでした。

関連する問題