Expresiones
   
    La expresiones son los bloques de construcción más importantes de PHP. En PHP
    casi todo lo que se escribe es una expresión. La manera más simple
    y acertada 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. '5', obviamente,
    tiene el valor 5, o en otras palabras, '5' es una expresión con el
    valor de 5 (en este caso, '5' es una constante entera).
   
   
    Después de esta asignación, se espera que el valor de $a sea 5
    también, por lo que si se escribe $b = $a, se espera que esto
    se comporte tal como si se escribiera $b = 5. En otras palabras,
    $a es también una expresión con el valor 5. Si todo funciona bien,
    esto es exactamente lo que sucederá.
   
   
    Un ejemplo de expresiones algo más complejo son las funciones. Por
    ejemplo, considere la siguiente función:
    
   
   
    Asumiendo que está familiarizado con el concepto de función (si no lo está,
    échele una ojeada al capítulo sobre funciones), asumirá
    que escribir $c = foo() es esencialmente igual que
    escribir $c = 5. Y está en lo cierto. Las funciones
    son expresiones con el valor de sus valores devueltos. Ya que foo()
    devuelve 5, el valor de la expresión 'foo()' es 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. Considere el
    ejemplo que ya hemos tratado, $a = 5. Es fácil de ver que
    aquí hay dos valores involucrados, el valor de la constante
    entera 5, y el valor de $a que ha sido actualizado a 5
    también. Aunque la verdad es que existe aquí un valor adicional
    involucrado, que es el valor de la asignación misma. La
    asignación evalúa al valor asignado, en este caso 5.
    En la práctica, esto significa que $a = 5, sin importar lo que haga,
    es una expresión con el valor 5. De este modo, escribir algo como
    $b = ($a = 5) es igual que escribir
    $a = 5; $b = 5; (el punto y coma
    marca el final de una sentencia). Ya que las asignaciones se analizan de
    derecha a izquierda, también se puede escribir $b = $a = 5.
   
   
    Otro buen ejemplo de orientación a expresiones es el pre- y
    post-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á con el valor de la expresión de 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:
   
   
    
   
   
    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:
   
   
    
   
   
    Algunas expresiones pueden considerarse como sentencias. En
    este caso, una sentencia tiene la forma 'expr ;', es decir, una
    expresión seguida de un punto y coma. En $b = $a = 5;,
    $a = 5 es una expresión válida, pero no es una sentencia
    en sí. Sin embargo, $b = $a = 5; es una sentencia válida.
   
   
    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. Véase la
    sección sobre
    conversión de tipos para más detalles.
   
   
    PHP proporciona una implementación completa y potente de expresiones, y
    documentarla por completo va más allá del ámbito de este manual. Los
    ejemplos de arriba deberían darle una buena idea de lo que son las expresiones
    y cómo construir expresiones útiles. Durante el
    resto de este manual se escribirá expr
    para indicar cualquier expresión de PHP válida.