Ayuda para mejorar código

  • Autor Autor zking
  • Fecha de inicio Fecha de inicio
zking

zking

Dseda
Programador
Verificación en dos pasos activada
Hola amigos, bueno este es el dilema en mi script se repite mucho un row , hay algo para optimizarlo?
Les dejare la manera que uso y una opcional pero no se si este bien.

PHP:
while ($row = $result->fetch_array()) {

if(1 == $row['Estado']){
echo "Exto";
}elseif (2 == $row['Estado']){
echo "Exito 2";
}else{
echo "XXXX";
}

PHP:
while ($row = $result->fetch_array()) {

$var = $row['Estado'];

if(1 == $var){
echo "Exto";
}elseif (2 == $var){
echo "Exito 2";
}else{
echo "XXXX";
}

}
 
es lo mismo... no te afecta... solo lees la variable... solo que de la forma 2 estas creando una variable mas...
 
En vez de usar un IF podrías utilizar un switch


PHP:
while ($row = $result->fetch_array()) {
	switch ($row['Estado']) {
		case 1:
			echo "Exto";
			break;
		case 2:
			echo "Exito 2";
			break;
		default:
			echo "XXXX";
	}
}

Mejor estructura, más rápido y mejor de leer para un programador :encouragement:

Te dejo la documentación por si acaso PHP: switch - Manual
 
En vez de usar un IF podrías utilizar un switch


PHP:
while ($row = $result->fetch_array()) {
	switch ($row['Estado']) {
		case 1:
			echo "Exto";
			break;
		case 2:
			echo "Exito 2";
			break;
		default:
			echo "XXXX";
	}
}

Mejor estructura, más rápido y mejor de leer para un programador :encouragement:

Te dejo la documentación por si acaso PHP: switch - Manual

Gracias, lo leeré :encouragement:
 
Supongo que los resultados vienen de SQL así que es mas rápido hacer esto
PHP:
while ($row = $result->fetch_array())
	{ 
	if("1" === $row['Estado'])
		{ 
		echo "Exto"; 
		}
	elseif ("2" === $row['Estado'])
		{	
		echo "Exito 2"; 
		}
	else
		{ 
		echo "XXXX"; 
		}  
	}
 
He estado leyendo algo sobre esto y no encuentro nada específico sobre PHP.

Según este hilo de Stackoverflow (allí hablan de Java, no de PHP): Java speed access array index versus temp variable - Stack Overflow , la segunda opción, en la que se usa la variable temporal, es más rápida, aunque puede depender de la máquina virtual.

En este otro hilo c - More efficient to use temporary variable or direct from array? - Stack Overflow hablan de lo mismo pero sobre C++. Al parecer el segundo ejemplo sería el más rápido, pero escribas lo que escribas el compilador generará el código ensamblador óptimo.

Por último, en este otro hilo sobre C# ( .net - In C#, Is it slower to reference an array variable? - Stack Overflow ) llegan a una conclusión similar: la segunda opción es más rápida, además de más legible, aunque el compilador podría optimizar el código.

En conclusión, yo elegiría la segunda opción: es más legible, elegante y al parecer es más rápida.

Un saludo.
 
Última edición:
Supongo que los resultados vienen de SQL así que es mas rápido hacer esto
PHP:
while ($row = $result->fetch_array())
	{ 
	if("1" === $row['Estado'])
		{ 
		echo "Exto"; 
		}
	elseif ("2" === $row['Estado'])
		{	
		echo "Exito 2"; 
		}
	else
		{ 
		echo "XXXX"; 
		}  
	}

Gracias por responder 😛
 
Atrás
Arriba