Gelişmiş PHP kullanıcıları için, ==
ve arasındaki farkı bilmek ===
ve kendilerine sormak " her iki işlenen aynı tip olduğundan emin olduğum zaman ==
veya ile karşılaştırmak daha mı hızlı ===
?"
Kısa ve genel cevap şu şekildedir: Bu durumlarda kullanımda herhangi bir performans kazancı yoktur ===
, bu yüzden muhtemelen kullanmalısınız ==
.
Kendilerini kıyaslamak isteyenler için, ad-hoc yazdığım aşağıdaki kodu kullanabilir ve farklı değerler deneyebilirsiniz. $a
ve $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";
?>
NOT: Karşılaştırma yalnızca her "İLK TL", "İKİNCİ TL" ye çok yakın olduğunda geçerlidir. Önemli ölçüde farklılarsa, işlemcinin karşılaştırmaları yürütürken başka bir şey yapmakla meşgul olduğu ve sonuçların güvenilir olmadığı ve karşılaştırmanın tekrar çalıştırılması gerektiği anlamına gelir.