Conceptos básicos de PHP (3)


Siguiendo con el hilo de esta serie de artículos, vamos a explicar que son los controles de flujo.

Cuando creamos un código PHP, el interprete del servidor encargado de examinarlo y ejecutarlo, lee linea por linea en busca de nuestras instrucciones. Cuando encuentra una variable en una linea, memoriza esta variable con su valor y lee la siguiente linea. Si en la segunda linea encuentra un echo, muestra por pantalla el contenido del echo; si en la tercera encuentra un «echo $variable», recuerda el contenido de esa variable y la muestra, etc etc…

Lo interesante llega cuando queremos controlar esto, quizás nos interese que el interprete lea una linea u otra según una condición, o que repita una linea tantas veces como le digamos. Es aqui cuando llega el control de flujos brindandonos el poder de controlar lo que hace el interprete.

Controlando que linea se muestra

Una forma de controlar que linea se muestra, es con if y con if else. Supongamos que queremos mostrar el contenido de una variable si ésta contiene la palabra «cacafuti»:

<?php
$variable="cacafuti";

if ($variable == "cacafuti" )
{    
     echo "la variable contiene $cacafuti";
}
?>

Podemos observar que la variable llamada «variable» contiene el texto o cadena de caracteres «cacafuti». El if hace una comprobación: si $variable es igual a «cacafuti» entonces… echo «la variable contiene $cacafuti». Bien, centremonos en la condición o comprobación de si es cierto o no:

if($variable == «cacafuti»)

Cuando metemos una condición dentro de los parentesis del if(), esta comprobación envía un uno o un cero; uno es cierto, cero es falso. Por lo tanto, si $variable es igual a «cacafuti» esto se convertirá en un uno, ya que es cierto. Si nosotros metieramos un uno a secas entre esos parentesis reservados para una condición, el contenido del if se leería siempre:

<?php
if(1){    
     echo "Soy un texto dentro de un if que siempre es cierto (o uno)";
}
?>

De lo contrario, si metieramos un cero, la condición nunca sería cierta:

<?php
if(0){  
  echo "Este texto nunca será mostrado";
}
?>

¿Por qué explico esto? Para entender que lo que el if() espera es un uno (verdadero) o cero (falso) ya sea una condición con ==  (igual que), != (no igual que) o cualquier otra cosa que su resultado sea uno o cero. Por lo tanto, esto también sería correcto:

<?php
$variableA=1;
$variableB=0;
if($variableA){
   echo "Este texto será mostrado ya que variableA es uno";
}if($variableB){
   echo "este texto nunca en la vida será mostrado";
}
?>

Observese que $variableA vale o contiene un uno y $variableB vale o contiene un cero. Teniendo esto claro, podemos meter la variable a pelo dentro del if, sin condición ni nada, ya que como se ha dicho, el if espera un cero o un uno; le importa tres pepinos como lo obtenga, pero eso es lo que espera.

Pasemos ahora al if else. Cuando queremos mostrar una cosa u otra según una condición, utilizamos if else. De este modo controlamos que se muestra en función, por ejemplo, del valor que tenga una variable:

<?php
$variable="popurri";
if($variable == "popurri"){
     echo "La variable contiene la palabra popurri";
}else{
     echo "La variable no contiene popurri";}
?>

Leamos este código…

1) $variable es igual a «popurri»

2) Si $variable es igual a «popurri» entonces…

3) mostramos «La variable contiene la palabra popurri»

4) de lo contrario…

5) mostramos «La variable no contiene popurri»;

Hay que acordarse de la sintáxis del if, es decir, de como se escribe: if(condicion){codigo si la condición es cierta}. Entre parentesis la condicion y entre corchetes el código si es cierta la condición. Por lo tanto, el if al ser un controlador de flujos, no lleva punto y coma en ningún sitio, pero el código que contiene, si lo lleva; sólo lo que hay entre corchetes. Pasemos ahora a las funciones.

Funciones o metodos

Por ahora no vamos a crear funciones, vamos a trabajar con las funciones que ya vienen de fábrica en php, pero para entender cómo funciona una función, vamos a ver el código de una. La función es aquello que nos permite realizar acciones dandole un valor a ésta para que lo manipule y nos devuelva el resultado de esa manipulación. En clase hemos visto tan() arctan() y alguna mas. El echo no es una función, pero la podemos tratar como tal para no liarnos. Las funciones no son otra cosa que una porción de codigo ya hecho, el cual podemos ejecutar llamando a la función que necesitemos. Veamos una función simple para entender como funciona:

<?php
function suma($numero){
     $resultado=$numero+5;
     return $resultado;
}
?>

Bien, poco a poco… Hemos dicho que las funciones reciben un valor, lo manipulan y devuelven el resultado. La sintáxis de las funciones son iguales que el if, pero en el parentesis no se meten condiciones, en cambio se meten variables que almacenarán los parametros que nosotros le pasemos. En concreto, esta funcion suma un cinco a la variable $numero, que contendrá el valor que nosotros le pasemos, lo almacena en $resultado y nos devuelve dicho resultado. Por lo tanto, las funciones se usan así:

<?php
$valorsumado=suma(9);
?>

Observemos que 9 es el valor que le pasamos a la función para que lo manipule. Hará con este valor lo que tenga que hacer y devuelve el resultado. En concreto, la variable $valorsumado valdrá 14. Nótese que el 9 no tiene comillas, esto es por que los numeros pueden ir entrecomillados, pero no deben para evitar algunos problemas mas complejos que no voy a tratar. Sólo recordarlo: los numeros que usemos para cálculos, sin comillas.

Observar también que estamos igualando $valorsumado con suma(9) y como es lógico, un igual es un igual, por lo tanto $valorsumado y suma(9) valen lo mismo. De modo que esto sería correcto:

<?php
echo suma(9);
?>

Le decimos a echo que muestre el valor de suma(9), y el valor de suma(9) será el resultado del cálculo que hace la función. A groso modo, las funciones pueden ser tratadas como variables con la particularidad de que su valor será el resultado de una manipulación interna de la función. Y ya que esto es así, vamos a demostrarlo:

<?php
$numerico=14;
if(suma(9) == $numerico){
     echo "La variable es igual a la suma de 9 mas 5";
}
?>

Aqui hemos tratado a la función como una variable, y su valor es 14 -igual que $numerico- Por lo tanto, la condición es cierta y pasa a mostrar el echo. Ni que decir tiene que el valor que nosotros le pasamos a la función, puede ser también una variable:

<?php
$numerico=14;
if(suma($numerico) == $numerico){
     echo "La condición es cierta";
}else{
     echo "La condición es falsa";
}
?>

Bien, a suma() le pasamos el valor de $numerico, por lo que suma() vale 19 (14+5=19) y no es igual a $numerico, ya que este vale 14 por lo tanto la condición es falsa.

En PHP existen miles de funciones ya creadas y listas para usarlas nosotros, las cuales aceptan no sólo uno, sino varios parametros. Algunas hacen calculos complejos, otras buscan una palabra en un texto, otras hacen comprobaciones, y así hasta un sinfín de posibilidades. Para saber usar cualquier función, nos basta con saber que parametros debemos darle, y que resultado nos va a devolver. Nos da completamente igual lo que haga por dentro, sabiendo eso y sabiendo como manejar las funciones en nuestro código, es suficiente.

Por último y para terminar, decir que podemos mostrar la funcion usandola como variable con un echo junto con más texto, pero esto se debe hacer con un punto a cada lado:

Bien: echo «Mi periquito me costó » . suma(14) . «centimos»;

Mal: echo «Tu periquito no vale ni suma(14) centimos»;

¿Por que? Por que el echo interpreta suma(14) como un texto normalito, total, son parentesis y un numero. Por esto hay que sacar la función fuera de las comillas, para que lo interprete como una función.

Y se finí. Para los próximos capítulos, bucles y formularios. A pasarlo bien x)

2 respuestas a “Conceptos básicos de PHP (3)”

  1. […] ← Conceptos básicos de PHP (3) Conceptos básicos de PHP (5) → […]

  2. […] ← Conceptos básicos de PHP (1) Conceptos básicos de PHP (3) → […]