2011-10-24 54 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將處理周圍的類型,無論如何都會投射它們。因此,在比較它們之前,我無法看到將它們轉換爲整數的優勢。

如果您正在尋找更強大的解決方案,可以將它們轉換爲整數,然後使用Identical('==='),它匹配等式和類型,而不是Equal('==')。

0
echo 1 == '1'; # true 
echo 1 === '1'; # false 
echo '1' === '1'; # true 
echo '1' == '1'; # true