4 回答

TA貢獻(xiàn)1859條經(jīng)驗 獲得超6個贊
=
是賦值運算符==
是比較運算符(檢查兩個變量是否具有相等的值)===
是相同的比較運算符(檢查兩個變量是否具有相同的值并且屬于同一類型)。

TA貢獻(xiàn)1795條經(jīng)驗 獲得超7個贊
對于高級PHP用戶,知道之間的差別==和===與問自己“是它更快地進(jìn)行比較==或與===我敢肯定,這兩個操作數(shù)是相同的類型?”
簡短而一般的答案是:在這種情況下使用沒有性能提升===,所以你應(yīng)該使用==。
感興趣的標(biāo)桿它自己的那些,你可以使用下面的代碼我寫的ad-hoc和嘗試不同的價值觀$a和$b:
<?php
// CONFIGURATION
$cycles = 1000000;
$a = 'random string 1';
$b = 'random string 2';
// FUNCTIONS
function compare_two_equals($a, $b) {
if ($a == $b) {
return TRUE;
} else {
return FALSE;
}
}
function compare_three_equals($a, $b) {
if ($a === $b) {
return TRUE;
} else {
return FALSE;
}
}
// EXECUTION
$time = microtime(TRUE);
for ($count_a = 0; $count_a < $cycles; $count_a++) {
compare_two_equals($a, $b);
}
$time_two_a = microtime(TRUE) - $time;
$time = microtime(TRUE);
for ($count_a = 0; $count_a < $cycles; $count_a++) {
compare_three_equals($a, $b);
}
$time_three_a = microtime(TRUE) - $time;
$time = microtime(TRUE);
for ($count_a = 0; $count_a < $cycles; $count_a++) {
compare_two_equals($a, $b);
}
$time_two_b = microtime(TRUE) - $time;
$time = microtime(TRUE);
for ($count_a = 0; $count_a < $cycles; $count_a++) {
compare_three_equals($a, $b);
}
$time_three_b = microtime(TRUE) - $time;
$time = microtime(TRUE);
// RESULTS PRINTING
print "<br />\nCOMPARE == (FIRST TRY): " . number_format($time_two_a, 3) . " seconds";
print "<br />\nCOMPARE == (SECOND TRY): " . number_format($time_two_b, 3) . " seconds";
print "<br />\nCOMPARE === (FIRST TRY): " . number_format($time_three_a, 3) . " seconds";
print "<br />\nCOMPARE === (SECOND TRY): " . number_format($time_three_b, 3) . " seconds";
?>
注意:只有當(dāng)每個“FIRST TRY”非常接近“SECOND TRY”時,比較才有效。如果它們明顯不同,則意味著處理器在執(zhí)行比較時忙于執(zhí)行其他操作,因此結(jié)果不可靠并且應(yīng)該再次運行基準(zhǔn)測試。
- 4 回答
- 0 關(guān)注
- 465 瀏覽
添加回答
舉報