Cita:
Iniciado por charlyalegret
Hola hugo, no veo claro el porqué es más óptimo usar swich...
Segun
http://www.phpbench.com/, la diferencia és mínima, incluso es ligeramente más rápido el if cuando se usa ===
Sólo pregunto por curiosidad y sin saber mucho sobre el tema...
la referencia de tu página basta para afirmar que el uso de un switch es mas óptimo que los if anidados (un código debe estructurarse lo mejor posible, cada sentencia tiene una razón de ser).....
sin embargo... te dire que el uso de === ejecuta una comparación estricta (es decir... evalua la condicion sin son iguales y de el mismo tipo de datos....)
ese sería el motivo del por que tarda menos... ahora...
lo que yo no le encuentro mucho sentido debido a que tanto PHP como JS no son lenguajes tipados....
algo me debe estar faltando... pero lo que si te puedo decir.. es que el uso de === no garantiza un óptimo funcionamiento en tu sistema.. pues tiene su tiempo y sus casos de uso.... (esto es meramente experiencia propia vivida)
Edito:
Me quedé pensando en la razón de ser de === en JavaScript y PHP y dí con ello mediante un ejemplo que realizé..
aquí te pongo el ejemplo para que observes a que me referia.. cuando mencioné que tiene su tiempo y su uso.
Código Javascript
:
Ver original<html>
<head>
<title>Uso de Break</title>
<script>
window.onload = function (){
var string = "2";
var integer = 2;
var imprimir = document.getElementById('myBreak');
if(string === integer){
imprimir.innerHTML = 'son iguales';
}else{
imprimir.innerHTML = 'se ha usado una comparación estricta los valores y tipos de dato deben ser estrictamente iguales';
}
}
</script>
</head>
<body>
<div id="myBreak">
</div>
</body>
</html>
normalmente.... cuando usas el operador == JavaScript busca convertir los valores en el dato apropiado sea String, Integer, etc...
tenemos:
var string = "2";
var integer = 2;
cuando usamos el operador == JS o PHP convierte el segundo valor al primero... para obtener el resultado de dicha comparación
(omite la diferencia de tipos de datos por así decirlo)
pero cuando usas el operador === el lenguaje sea JS o PHP interpreta que es una comparación estricta y procede a evaluar... el tipo de dato contenido
en la variable...
de ese modo... aunque el valor sea igual... si el tipo de dato no corresponde... devuelve FALSO....
como veras.... no conviene usarlo en todo...
te invito a probar el ejemplo..... y así reafirmes las conclusiones.
SALUDOS y ÉXITO...