25 junio 2010 in PHP by dacho

Continuando el curso practico de PHP en esta leccion veremos las sentencias condicionales que nos provee PHP. Se llaman asi porque son las herramienta que los lenguajes de programacion nos brindan para evaluar situaciones logicas y de esta forma decidir cual es el camino que el programa tiene que seguir.

La sentencia condicional If

If en ingles significa el condicional si?.  Por ejemplo:

Si 5 es menor que 4 entonces… o Si 4 es menor que 5 entonces…

En programacion se lo utiliza de manera muy similar, veamos un ejemplo:

<?php
 $Titulo = "Primer ejemplo del condicional if";
 
 // Por medio de Include llamamos al Template (Si no sabes de que hablo ir a la leccion anterior)!
 include "includes/template_inicio.php";
 
 if (5 < 4) {echo "5 es menor que 4<br />";}
 if (4 < 5) {echo "4 es menor que 5<br />";}
 
 include "includes/template_fin.php";
?>

El programa imprimira 4 es menor que 5, pero no imprimira 5 es menor que 4, ya que no se cumple la condicion que le pusimos al if. Esta herramienta es sin duda una de las mas utilizadas en los programas o scripts de php, ya que es lo que nos permite ir tomando diferentes decisiones.

El condicional If Else

El condicional else complementa el if, es decir el else actua de la siguiente manera:

si (5 es menor que 4) entonces { Instruccion2 } (Sino no lo hace entonces) { Instruccion2 }

Veamoslo completando el ejemplo anterior:

<?php
 $Titulo = "Primer ejemplo del condicional if";
 
 // Por medio de Include llamamos al Template (Si no sabes de que hablo ir a la leccion anterior)!
 include "includes/template_inicio.php";
 
 if (5 < 4) {
     echo "5 es menor que 4<br />";
 }else{
     Echo "5 NO es menor que 4<br />";
 }
 
 if (4 < 5) {
     echo "4 es menor que 5";
 }else{
     echo "4 No es menor que 4"
 }
 
 include "includes/template_fin.php";
?>

Este programa imprimira algo asi:

5 NO es menor que 4
4 es menor que 5

Los operadores condicionales

Cuando armamos un if, lo que hacemos es poner una condicion, se pueden armar muchas clases de condiciones, en nuestro ejemplo utilizamos el operador condicionar < (menor que), a continuacion una lista de los condicionales en PHP.

Sintaxis Nombre Explicacion
$a == $b Igualdad Cierto si $a es igual a $b.
$a === $b Identidad Cierto si $a es igual a $b y si son del mismo tipo
$a != $b Desigualdad Cierto si $a no es igual a $b.
$a < $b Menor que Cierto si $a es estrictamente menor que $b.
$a > $b Mayor que Cierto si $a es estrictamente mayor que $b.
$a <= $b Menor o igual que Cierto si $a es menor o igual que $b.
$a >= $b Mayor o igual que Cierto si $a es mayor o igual que $b.

Bueno visto todo esto lo que haremos ahora es un ejemplo un poco mas avanzado para entender mejor el funcionamiento del if. Nuestro siguiente script encontrara el mayor de 3 numeros que les pasemos como variable:

<?php
	$Titulo = "Calculo del mayor de 3 numeros";
	include "includes/template_inicio.php";
 
	 $x = 10;
	 $y = 5;
         $z = 18;
 
	 if ($x >= $y){ // $x mayor q $y?
 
		  //como estamos adentro del IF Sabemos q $x es mayor o igual que $y
		  if ($x >= $z) // $x es mayor que $z?
				echo "$x es mas grande que $y y que $z"; //Gana $x
		  else
				echo "$z es mas grande que $x y que $y"; //Gana $z
 
	 }else{
 
		  //como estamos adentro del ELSE Sabemos q $x NO es mayor o igual que $y
		  if( $y >= $z ) // $y es mayor que $z?
				echo "$y es mas grande que $x y que $z"; //Gana $y
		  else
				echo "$z es mas grande que $y y que $x"; //Gana $z
	 }
 
	include "includes/template_fin.php";
?>

El resultado de nuestro script en este caso sera:
18 es mas grande que 10 y que 5

Pueden cambiar las variables para ver los otros resultados.

La sintaxis del if else es la siguiente:

if (Condicion){
       Sentencias si se cumple la condicion;
}else{
       Sentencias si NO se cumple la condicion;
}

En caso de que la sentencia sea una sola se pueden omitir las llaves, si hay 2 o mas sentencias es obligatorio que se coloquen las llaves para poder decirle al interprete de php exactamente donde termina la instruccion.

El script que hicimos recien es algo complicado porque lo hice con las herramientas que teniamos ahora veremos sobre los conectores Logicos:

Los conectores Logicos And, Or y Not

Los conectores logicos nos permiten conectar varias operaciones logicas de las que vimos anteriormente para poder evaluar al mismo tiempo. Por ejemplo para saber si x es mas grande que z y que y al mismo tiempo podemos pensarlo como:

Conector And (&&)

¿x es mayor que z? y ¿x es mayor que y? Exactamente eso es el conector logico And. Solo es verdadero (true) si son verdaderas las dos operaciones logicas que une.

La sintaxis correcta en php seria: ((x > z) and (x > y)) o tambien ((x > z) && (x > y))

Conector Or (||)

¿x es mayor que z? o ¿x es mayor que y? Exactamente eso es el conector logico Or. Es verdadero (true) si una de las expresiones que une es verdadera. Obviamente si ambas son verdadera tambien es verdadero.

La sintaxis correcta en php seria: ((x > z) or (x > y)) o tambien ((x > z) || (x > y))

Operador de negacion Not (!)

Este operador se llama operador de negacion, lo que hace es invertir el valor logico, es decir si era verdadero entonces lo combierte en falso y si era falso entonces lo combierte en verdadero. Por ejemplo podemos definir que x es menor que z de la siguiente forma: x no es mayor que z

La sintaxis correcta en php seria: !(x > z) . Esto es verdad solo si x es menor que z. Ya que el operador de negacion invierte el true que abria si x es mayor que y.

Si se esta preguntando si hay mas operadores de coneccion creo que si que los hay pero con estos alcanza para formar cualquier operacion logica que necesitemos.

El Condicional Elseif

Bueno muchas veces como en el ejemplo que haremos a continuacion es necesario añidar condicionales if junto con else para poder armar condiciones mas complicadas, para eso existe el condicional elseif () (todo junto), su sintaxis es la siguiente:

if(condicion1){
   instrucciones si condicion 1 es verdadera
}elseif (condicion2){
   Instrucciones si condicion1 es falsa y condicion2 es verdadera
       }else{
              Instrucciones si condicion1 es falsa y condicion2 es tambien falsa
       }

Ahora para finalizar la leccion mejoraremos el script anterior de hayar el mayor de tres numeros y lo escribiremos en menor cantidad de lineas:

<?php
	$Titulo = "Calculo del mayor de 3 numeros";
	include "includes/template_inicio.php";
 
	 $x = 10;
	 $y = 5;
    $z = 18;
 
	 if (($x >= $y) && ($x >= $z)) // $x mayor q $y?
				echo "$x es mas grande que $y y que $z"; //Gana $x
		  elseif($y >= $x && $y >= $z)
				echo "$y es mas grande que $x y que $z"; //Gana $y
		  else
				echo "$z es mas grande que $x y que $y"; //Como no gano ni $x ni $y no queda opcion ;)
 
	include "includes/template_fin.php";
?>

Como podes ver este script es mucho mas simple que el anterior y es igual o mejor dicho este es mas efectivo y rapido porque hace menos operaciones.

Bueno nos vemos en la proxima, que esto cada vez se va a poner mas interesante.

Siguiente Leccion >> (todavia no esta)

<< Volver al Indice del Curso

Entradas Relacionadas: