Gelişmiş bir PHP kullanıcılar için, ==
ve ===
arasındaki farkı bilmek ve kendilerini soran "o ==
veya ===
ile karşılaştırmak daha hızlıdır Her iki işlenen aynı türde olduğundan emin olduğum zaman? "
Kısa ve genel cevap:. Muhtemelen kullanmak gerekir there is no performance gain in using ===
Bu durumda, bu yüzden ==
strong>
O kendilerini kıyaslama ilgilenen olanlar için, ben ad-hoc yazdı aşağıdaki kodu kullanabilirsiniz ve $a
ve $b
için farklı değerler deneyebilirsiniz:
<?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";
?>
NOT: Her bir "İLK YTL" onun "İKİNCİ YTL" çok yakın olduğunda karşılaştırma geçerlidir. Önemli ölçüde farklı ise, bu işlemci karşılaştırmalar yürütülürken başka bir işle meşgul oldu ve böylece sonuçları güvenilmez ve kriter tekrar çalıştırmak gerektiği anlamına gelir.