2011-10-24 2 views
0
$a = '1'; 
$b = '1'; 

// Method 1 
if ($a == $b) { ... } 

// Method 2 
if ((int)$a == (int)$b) { ... } 

どの方が良い解決法ですか?私はベストプラクティスをプログラミングし、必ずしもパフォーマンスではないと考えています。比較の前に2つの文字列をintに型キャストする方が良いですか?

+2

[===](http://pt2.php.net/manual/en/language.operators.comparison.php) – acm

+1

別の有用な先端は、数値がすべき文字列として数値を格納することはありませんそうであれば、数字として使うべきです。 – Starlays

答えて

2

Identical演算子を使用するだけで簡単に使用できます。

編集:andre matosは既にベストな方法であると考えています。

0

'=='を使用すると、PHPは型を取り囲み、とにかくキャストします。したがって、私はそれらを比較する前に整数にキャストする利点を見ることはできません。

より堅牢なソリューションを探している場合は、それらを整数にキャストし、Equal( '==')ではなくEqualityとTypeの両方に一致するIdentical( '===')を使用できます。

0
echo 1 == '1'; # true 
echo 1 === '1'; # false 
echo '1' === '1'; # true 
echo '1' == '1'; # true 
関連する問題