para los usuarios avanzados de PHP, conocer la diferencia entre ==
y ===
y se preguntan "¿es más rápido para comparar con ==
o con ===
cuando estoy seguro de que ambos operandos son del mismo tipo? "
La respuesta breve y general es: No hay ganancia de rendimiento en el uso ===
en estos casos, por lo que es mejor usar ==
.
para los interesados en la evaluación comparativa de ellos mismos, puede utilizar el siguiente código que he escrito ad-hoc y probar diferentes valores para $a
y $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";
?>
NOTA: La comparación es válida sólo cuando cada uno "FIRST TRY" está muy cerca de su "SEGUNDO INTENTO". Si son significativamente diferentes, significa que el procesador estaba ocupado haciendo otra cosa mientras ejecutaba las comparaciones y, por lo tanto, los resultados no son confiables y el punto de referencia debería volver a ejecutarse.
echa un vistazo al ejemplo ... Lo publiqué aclararía más cosas .. –
Para usuarios avanzados de PHP, sabiendo la diferencia entre == y === y preguntándose "¿es más rápido comparar con == o con === ¿Cuándo estoy seguro de que ambos operandos son del mismo tipo? ", mire mi script de referencia a continuación. – lucaferrario
@Strawberry Creo que la etiqueta de la pregunta también debe incluir la etiqueta [javascript] (http://stackoverflow.com/tags/javascript/info) ya que también se aplica a ese idioma. –