Ayuda para mejorar código

zking Seguir

Dseda
Programador
Verificación en dos pasos activada
Desde
15 Jun 2013
Mensajes
1.084
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";
}

}
 

Cicklow

Admin
Dseda
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Ha verificado su Paypal!
Suscripción a IA
Desde
30 May 2011
Mensajes
1.101
es lo mismo... no te afecta... solo lees la variable... solo que de la forma 2 estas creando una variable mas...
 

TonchitoZ

Gamma
Programador
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
27 Mar 2014
Mensajes
448
Por favor, ten en cuenta 📝 que si deseas hacer un trato 🤝 con este usuario, está baneado 🔒.
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
 

zking

Dseda
Programador
Verificación en dos pasos activada
Desde
15 Jun 2013
Mensajes
1.084
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:
 

Javieer

Gamma
Programador
Desde
2 Ago 2013
Mensajes
161
Por favor, ten en cuenta 📝 que si deseas hacer un trato 🤝 con este usuario, está baneado 🔒.
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"; 
		}  
	}
 

RafaG

Alfa
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
3 Jun 2014
Mensajes
15
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:

zking

Dseda
Programador
Verificación en dos pasos activada
Desde
15 Jun 2013
Mensajes
1.084
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 :p
 
Arriba