martes, 19 de mayo de 2009

Notas para iniciarse en PHP, Parte 4: Operadores, estructuras de control y funciones


Un pequeño poema escrito en PHP


Operadores

Llamamos operador a cualquier símbolo o expresión que nos permite llevar a cabo una operación con uno o más valores para obtener un valor resultante. Por ejemplo, el siguiente código:
$a = 18;

Consta de un operador de asignación representado por "=", con el cual se asigna el valor de 18 a la variable $a.

Dependiendo del número de variables o valores involucrados, los operadores pueden ser unitarios, al operar sobre un único valor (por ejemplo el operador de incremento ++), binarios, que operan sobre dos valores (estos representan la mayoría de los operadores de PHP, que encontramos listados de forma completa en la sección Precedencia de operadores del manual) y el operador ternario ?:, del que se hablará más adelante.

Dentro del manual vemos que existe un gran grupo de operadores que se clasifican de la siguiente manera:

Operadores aritméticos
Operadores de asignación
Operadores Bit a Bit
Operadores de comparación
Operadores de manejo de errores
Operadores de ejecución
Operadores de incremento
Operadores de lógica
Operadores de cadenas
Operadores de matrices
Operadores de tipo


Estructuras de control

En el último post quedó pendiente seguir hablando sobre las estructuras de control en PHP, para buena fortuna de los programadores de C que lean esto, la gran mayoría de sus estructuras están presentes en este lenguaje:

Estructuras condicionales:
if
else
else if / elseif
switch

Estructuras para bucles
while
do-while
for
foreach

Instrucciones para saltos y rompimientos de ciclos
goto
break
continue


Entre otras novedades con respecto a C, encontramos que else if y elseif son equivalentes para la compilación del programa, también utilizar las palabras reservadas and y or en lugar de || y && respectivamente es totalmente válido.

Las sentencias del lenguaje pueden agruparse dentro de estas estructuras utilizando los clásicos corchetes, pero además el lenguaje nos ofrece la alternativa de utilizar un modo similar al de Python, con los dos puntos ":" y una palabra clave para indicar el inicio y el final de una estructura. Por ejemplo, si tenemos el siguiente código:
#Modo clásico con corchetes de C
if ($a > $b) {
   echo "a es más grande que b";
   $b = $a;
}

También se puede escribir de la siguiente manera:
#Modo similar al de Python, excepto por el uso necesario de paréntesis
if ($a > $b) :
   echo "a es más grande que b";
   $b = $a;
endif;

Como vemos en el enlace de sintaxis alternativas, también aplica para los bucles:
#Modo clásico con corchetes de C
while ($a < $b) {
   echo "a vale $a";
   $a ++;
}

Pudiendo escribir el código anterior como:
#Modo similar al de Python, excepto por el uso necesario de paréntesis
while ($a < $b) :
   echo "a vale $a";
   $a ++;
end while;

Dentro de nuestras estructuras encontramos también otro viejo conocido para muchos veteranos de C, la alternativa muy útil al uso de if - else:
condición ? ejecuta si es cierto : ejecuta si es falso

En casos como el siguiente:
#Modo común usando if - else
if ($a > 0)
   $b = 1;
else
   $b = 2;


Se puede obtener una ejecución idéntica de esta forma:
#Modo alternativo usando "?"  y ":"
$b = ($a > 0)? 1 : 2;

Al asignarle a $b uno de dos valores dependiendo de si la condición $a > 0 es verdadera.


Funciones


Una función consiste un una estructura que contiene código, la cual que puede ser llamada para la ejecución de este código desde otra parte del programa, está puede además recibir uno o más valores llamados parámetros, y devolver un resultado que pueda ser utilizado desde el contexto en que son llamadas.

Las funciones pueden ser definidas por el usuario siguiendo una estructura como la siguiente:


<?php
function foo ($arg_1, $arg_2, ..., $arg_n)
{
   echo "Función de ejemplo.\n";
   return $retval;
}
?>


En donde vemos que es necesario que la declaración de la función sea antecedida por la palabra clave function, seguida del nombre de la función, dentro del paréntesis se pueden declarar uno o más parámetros sin que esto sea obligatorio. La instrucción return sirve para indicar el final de la ejecución de una función, ya que regresa el apuntador de ejecución del programa al punto en el que se mando a llamar a la función ejecutada; al igual que los parámetros, esta instrucción no es indispensable para que una función esté declarada correctamente, de no incluirse un return, la función finalizará al acabar de ejecutar la última instrucción que contenga.

La instrucción return puede incluir un valor de retorno, que puede ser una variable o valor de cualquier tipo (incluyendo arreglos y objetos) que es devuelto al lugar donde se mando ejecutar la función.

En el siguiente ejemplo se muestra la declaración y llamado a una función, que recibe una serie de parámetros y devuelve un valor de retorno:
<?php
//Función que calcula la hipotenusa al cuadrado a partir del valor de dos catetos
function hipotenusa2($a, $b)
{
   $c2 = $a * $a + $b * $b;
   return $c2;
}

$catetoOp = 2;
$catetoAd = 4;
$h2 = hipotenusa2($catetoOp, $catetoAd); //Llamada a la función
echo "La hipotenusa al cuadrado es $h2";
?>

La declaración de la función no necesariamente tiene que aparecer antes de su llamada en el programa, puede declararse en cualquier punto dentro de éste, o incluso encontrarse dentro de otro archivo de código PHP que podemos incluir en nuestro programa, a través de las instrucciones require, require_once, include e include_once. Un ejemplo de un uso muy práctico para esto es tener en un archivo una serie de funciones que serán usados dentro de nuestros programas, y en lugar de volver a escribirlas en cada uno, las incluimos con alguno de estas instrucciones.

A través de las funciones PHP nos ofrece una amplia gama de utilidades para facilitar nuestro trabajo al momento de programar, estas son llamadas funciones internas, a las que podemos acceder de la misma forma a la que a las funciones declaradas por el usuario. Podemos encontrarlas dentro del manual en la sección de referencia de funciones. En los siguientes posts exploraremos algunas funcionalidades muy interesantes que encontramos en esta lista.

Además de las funciones, PHP también soporta la utilización de clases y objetos para estructurar la ejecución del código de nuestros programas, así como las funciones las clases también pueden ser declaradas por el usuario, y además existen clases internas que nos permiten acceder a funcionalidades adicionales a las que ya teníamos con las funciones internas. El tema de las clases y objetos, y la referencia de funciones internas lo encontrarán en nuestro siguiente post.

Hasta la próxima.

0 comentarios:

Publicar un comentario