JTagua

Inicio » PHP » Expresiones PHP

Category Archives: Expresiones PHP

Anuncios

Tutorial PHJP(14): Expresiones PHP.

En PHP casi todo lo que se escribe es una expresión. La manera más simple de definir lo que es una expresión es “cualquier cosa que tiene un valor”.

Las formas más básicas de expresiones son las constantes y las variables. Cuando se escribe “$a = 5”, se está asignando ‘5’ a $a. Si después se escribe $b = $a, se espera que esto se comporte tal como si se escribiera $b = 5.

Un ejemplo de expresiones algo más complejo son las funciones. Por ejemplo, considere la siguiente función:

<?php
function cinco ()
{
    return 5;
}
?>

Sumiendo que está familiarizado con el concepto de función, escribir $c = cinco() es esencialmente igual que escribir $c = 5. Normalmente las funciones no sólo devuelven un valor estático, sino que computan algo.

Por supuesto, los valores en PHP no tienen que ser enteros, y con frecuencia no lo son. PHP soporta cuatro tipos de valores escalares: valores enteros (integer), valores de coma (punto) flotante (float), valores de cadena (string) y valores booleanos (boolean) – (valores escalares son aquellos que no se pueden descomponer en piezas más pequeñas, a diferencia de las matrices, por ejemplo). PHP también soporta dos tipos compuestos (no escalares): matrices (arrays) y objetos. Cada uno de estos tipos de valores pueden ser asignados a variables o devueltos desde funciones.

PHP lleva las expresiones mucho más allá, de la misma manera que lo hacen otros lenguajes. PHP es un lenguaje orientado a expresiones, en el sentido de que casi todo es una expresión.

Otro buen ejemplo de orientación a expresiones es el incremento y decremento. Los usuarios de PHP y de otros muchos lenguajes pueden estar familiarizados con la notación variable++ y variable – -. Éstos son los operadores de incremento y decremento.

En PHP, al igual que en C, hay dos tipos de incrementos pre-incremento y post-incremento. Ambos esencialmente incrementan la variable, y el efecto sobre la variable es idéntico. La diferencia está en el valor de la expresión del incremento. Pre-incremento, que se escribre ‘++$variable’, evalúa al valor incrementado (PHP incrementa la variable antes de leer su valor, de ahí el nombre de ‘pre-incremento’). Post-incremento, que se escribe ‘$variable++’ evalúa el valor original de $variable, antes de que sea incrementado (PHP incrementa la variable después de leer su valor, de ahí el nombre de ‘post-incremento’).

Un tipo de expresiones muy comunes son las expresiones de comparación. Estas expresiones evalúan si algo es FALSE (falso) o TRUE (verdadero). PHP soporta > (mayor que), >= (mayor o igual que), == (igual), != (distinto), < (menor que) y <= (menor o igual que). El lenguaje también soporta un conjunto de operadores de equivalencia estricta: === (igual y del mismo tipo) y !== (diferente o de distinto tipo). Estas expresiones se usan mayormente dentro de ejecuciones condicionales, tales como la sentencia if.

El último ejemplo de expresiones que trataremos aquí es una combinación de expresiones operador-asignación. Ya sabe que si quiere incrementar $a en 1, puede simplemente escribir ‘$a++’ o ‘++$a’. Pero si lo que quiere es añadirle más de uno, por ejemplo 3, podría escribir ‘$a++’ varias veces, pero esto, obviamente, no es una manera muy eficiente o cómoda. Una práctica mucho más común es escribir ‘$a = $a + 3’. ‘$a + 3’ evalúa al valor de $a más 3, y se vuelve a asignar a $a, lo que resulta en incrementar $a en 3. En PHP, como en otros lenguajes como C, se puede escribir esto de una manera más abreviada, lo que con el tiempo se podría convertir en una forma más clara y rápida de entenderlo. Añadir 3 al valor actual de $a puede ser escrito ‘$a += 3’. Esto significa exactamente “toma el valor de $a, añádele 3 y asígnalo de nuevo a $a”. Además de ser más corto y claro, también resulta en una ejecución más rápida. El valor de ‘$a += 3’, al igual que el valor de una asignación normal, es el valor asignado. Observe que NO es 3, sino el valor combinado de $a más 3 (éste es el valor que es asignado a $a). Se puede usar cualquier operador compuesto de dos partes en este modo de operador-asignación, por ejemplo ‘$a -= 5’ (restar 5 del valor de $a), ‘$b *= 7’ (multiplicar el valor de $b por 7), etc.

Existe una expresión más que le puede parecer rara si no la ha visto en otros lenguajes, el operador condicional ternario:

<?php
$primero ? $segundo : $tercero
?>

Si el valor de la primera subexpresión es TRUE (no es cero), se evalúa la segunda subexpresión, y ése será el resultado de la expresión condicional. Si no, se evalúa la tercera subexpresión, y ése será el valor.

El siguiente ejemplo debería ayudarle a comprender un poco mejor el pre- y post-incremento y las expresiones en general:

<?php
function doble($i)
{
    return $i*2;
}
$b = $a = 5;        /* asignar el valor cinco a la variable $a y $b */
$c = $a++;          /* post-incremento, asignar el valor original de $a
                       (5) a $c */
$e = $d = ++$b;     /* pre-incremento, asignar el valor incrementado de
                       $b (6) a $d y $e */

/* en este punto, $d y $e son iguales a 6 */

$f = doble($d++);  /* asignar el doble del valor de $d antes
                       del incremento, 2*6 = 12, a $f */
$g = doble(++$e);  /* asignar el doble del valor de $e después
                       del incremento, 2*7 = 14, a $g */
$h = $g += 10;      /* primero, $g es incrementado en 10 y finaliza con el
                       valor 24. El valor de la asignación (24) es
                       asignado después a $h, y $h finaliza también con el
                       valor 24. */
?>

Lo último que vale la pena mencionar es el valor verdadero de las expresiones. En muchos casos, principalmente en ejecuciones condicionales y bucles, no interesa saber el valor específico de la expresión, sino sólo si el valor significa TRUE o FALSE. Las constantes TRUE y FALSE (insensible a mayúsculas-minúsculas) son los dos valores booleanos posibles. Cuando es necesario, una expresión es convertida automáticamente al tipo boolean.

Anuncios