Tutoriales de Electrónica Básica
ESTRUCTURAS DE CONTROL:

Estructuras If, While, Do While, For, Foreach y Switch. Lo más recomendable, pon en práctica los ejemplos, será más fácil...

En esta sección:

PHP tiene una sintaxis muy parecida a la de lenguaje C, por lo que aquellos que ya manejan este lenguaje pues les resultará un juego de niños.

ESTRUCTURAS DE CONTROL:

Las estructuras de control disponibles en PHP son las siguientes:

  • If
  • While
  • Do While
  • For
  • Foreach
  • Switch

Condicional IF:

Las sentencias condicionales IF permiten ejecutar bloques de códigos dependiendo de una condición que se va a evaluar la cual devuelve un valor Verdadero o Falso. Para PHP el 0 es equivalente a Falso y cualquier otro número es Verdadero.

Si se desea ejecutar instrucciones sólo cuando una condición es verdadera, se puede utilizar la siguiente estructura:

<?php  
	if( <condición> ){  
	   <sentencia_a_ejecutar>;  
	}  
?>  
  • <condición>: es lo que se va a evaluar, se escribe siempre entre paréntesis. Si dicha condición resulta verdadera, se ejecutará el bloque de instrucciones que se encuentra en su interior, es decir <sentencia_a_ejecutar>.
  • <sentencia_a_ejecutar>: puede ser una línea de código o un bloque mucho más amplio.

Existe una expresión más sencilla de la sentencia IF, ejecutada en una sola línea de código. Por ejemplo:

<?php
	$a = 6;
	if ($a > 4) echo "$a es mayor que 4";
	// if <condición> sentencias_a_ejecutar;
?>

Condicional If...else:

Cuando se van a realizar distintas acciones por Verdadero y por Falso se puede utilizar la estructura If...Else

<?php  
	if($var1 == 12){  
	   echo 'La variable vale 12';  
	}else{  
	   echo 'La variable tiene otro valor';  
	}  
?>  

Esta última también tiene una expresión más sencilla, pero el resultado de la evaluación se asigna a una variable:

<?php  
	$a = 10;  
	$valor = ($a>=0) ? '$a es positivo' : '$a es negativo';
	// $var = <condición> ? <valor_si_verdadero> : <valor_si_falso>
	echo $valor;
?>

Condicional If...elseif...else:

Otra estructura usada frecuentemente, es la sentencia if...elseif...else , que nos permite evaluar otra condición por si no se cumple la primera, también permite volver a usar else con normalidad como opción final:

<?php  
	if($var1 == 12){  				// Si var1 es 12...  
	   echo 'La variable vale 12'; 	// ingresa aquí
	}elseif($var1 == 3){  			// sino, si var1 vale 3...  
	   echo 'La variable vale 3';  	// irá por aquí
	}else{  						// sino, irá por su última opción
	   echo 'La variable tiene otro valor';
	}  
?>

Bucle While:

Esta instrucción nos permite ejecutar un bloque de acciones mientras se cumpla una determinada condición (mientras sea verdadera). Cuando deje de cumplirse continuará con el resto del código.

<?php  
	$var1 = 0;  
	while($var1 < 10){  
	   	echo "\$var1 = $var1<br>";  
		$var1 ++;  			// Incrementamos $var1 en cada ciclo 
	}  
?>  

En este tipo de bucles es importante tener en cuenta que se debe modificar algún parámetro de la condición para que esta acabe cumpliéndose en algún momento, de lo contrario crearemos un bucle infinito.

Bucle do While:

Es igual al bucle while con la diferencia de que ejecuta las acciones obligatoriamente al menos una vez y luego recién evalúa la condición, ejemplo:

<?php  
	$var1 = 0;
	do {
		echo '$var1'." = $var1<br>";	// ejecuta las sentencias
		$var1 ++;  						// ...
	} while ($var1 < 10);  				// y ahora evalúa la condición
?> 

Bucle FOR:

El bucle for nos permite ejecutar un determinado bloque de acciones un número determinado de veces, a esta estructura le pasaremos tres parámetros que separaremos por punto y coma (;)

  1. Inicialización de la variable de control del bucle.
  2. Condición a evaluar, cuando devuelva 0 o FALSE termina el bucle.
  3. Incremento o decremento de variable de control.
<?php  
	for ($var1 = 0; $var1 < 10; $var1 ++){  
	   echo "\$var1 = $var1";  
	}  
?>

Antes de empezar el bucle se asignará $var1 = 0 , entonces se ejecutará el interior del bucle y $var1++ hasta que se cumpla $var1 < 10 .

Bucle ForEach:

El bucle foreach nos permite iterar para cada elemento de un vector. Su sintaxis es sencilla, solo hay que indicar el identificador de la matriz, la expresión "as" y seguidamente la variable que tomará el valor de cada elemento de la matriz, desde el elemento [0] hasta el [ultimo]:

<?php  
	$vector = array("uno","dos","tres");  
	foreach ($vector as $valor) {  
		echo "Valor: $valor<br>";  
	}  
?>

Esta expresión también permite trabajar con vectores indexados, así por ejemplo:

<?php  
	$vector = array(  
		"uno" => 1,  
		"dos" => 2,  
		"tres" => 3,  
		"diecisiete" => 17  
	);  
	foreach( $vector  as  $indice  =>  $valor ) {  
		print  "\$vector[$indice] => $valor.\n";  
	}  
?>

En este caso, recuperamos el $valor de cada elemento y su $indice

Switch:

En muchas ocasiones, programando en PHP, nos encontramos que queremos hacer una u otra acción dependiendo del valor de una variable, en este caso, podríamos usar una sucesión de condicionales if, pero el código resultante sería confuso y difícil de modificar en el futuro.

PHP y en general todos los lenguajes de un nivel mas o menos alto, dispone de un ciclo llamado ciclo switch que nos realizará un bloque de acciones para cada valor de una variable dada.

<?php  
	switch ($i) {  
		case 0:  
			echo  "Variable en valor bajo";  
			break;  
		case 1:  
			echo  "Variable en valor alto";  
			break;  
		default:  
			echo  "La variable no es binaria";  
	}  
?> 

Este código hará un switch para la variable $i, en el caso que esta sea 0, imprimirá el mensaje "Variable en valor bajo", si es 1 imprimirá "Variable en valor alto" sino, nos dirá "La variable no es binaria".

Cada bloque case, tiene una sentencia break que lo saca de la estructura en caso de ser verdadera, para evitar que continúe evaluando las demás, y finalmente encontramos default, que se ejecuta si no se cumple ninguna de las anteriores.

Hay otras Estructuras que se fueron incorporando. Búscalas seguro te sacarán de más de un apuro...

R-Luis...