Hosting de Calidad
  • Inicio
  • Precios y servicios
  • F.a.q y ayudas
  • Realizar pedido
  • Webs alojadas
  • Quienes somos
  • Foro HyD
  • Contacto

    Zona Dominios

    Entrar
    registro de dominios


    Zona Hosting

    Entrar
    alojamiento web


    5 Métodos de Pago
    Tarjeta de crédito
    Domiciliación
    Transferencia
    Soporte Epagado
    Soporte Paypal

    Liberalización .es

    Ver mas
    dominios .es


  •  
     
     
    Expresiones

    Capítulo 9_ Expresiones

    Las expresiones son la piedra angular de PHP_ En PHP, casi cualquier cosa que escribes es una expresión_ La forma más simple y ajustada de definir 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 escribes "$a = 5", estás asignando '5' a $a_ '5', obviamente, tiene el valor 5 ó, en otras palabras '5' es una expresión con el valor 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, de manera que si escribes $b = $a, se espera también que se comporte igual que si escribieses $b = 5_ En otras palabras, $a es una expresión también con el valor 5_ Si todo va bien, eso es exactamente lo que pasará_

    Las funciones son un ejemplo algo más complejo de expresiones_ Por ejemplo, considera la siguiente función:

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

    Suponiendo que estés familiarizado con el concepto de funciones (si no lo estás échale un vistazo al capítulo sobre funciones), asumirás que teclear $c = foo() es esencialmente lo mismo que escribir $c = 5, y has acertado_ Las funciones son expresiones que valen el valor que retornan_ Como foo() devuelve 5, el valor de la expresión 'foo()' es 5_ Normalmente las funciones no devuelven un valor fijo, sino que suele ser calculado_

    Desde luego, los valores en PHP no se limitan a enteros, y lo más normal es que no lo sean_ PHP soporta tres tipos escalares: enteros, punto flotante y cadenas (los tipos escalares son aquellos cuyos valores no pueden 'dividirse' en partes menores, no como los arrays, por ejemplo)_ PHP también soporta dos tipos compuestos (no escalares): arrays y objetos_ Se puede asignar cada uno de estos tipos de valor a variables o bien retornarse de funciones, sin ningún tipo de limitación_

    Hasta aquí, los usuarios de PHP/FI 2 no deberían haber notado ningún cambio_ Sin embargo, PHP lleva las expresiones mucho más allá, al igual que otros lenguajes_ PHP es un lenguaje orientado a expresiones, en el sentido de que casi todo es una expresión_ Considera el ejemplo anterior '$a = 5'_ Es sencillo ver que hay dos valores involucrados, el valor de la constante entera '5', y el valor de $a que está siendo actualizado también a 5_ Pero la verdad es que hay un valor adicional implicado aquí, y es el valor de la propia asignación_ La asignación misma se evalúa al valor asignado, en este caso 5_ En la práctica, quiere decir que '$a = 5', independientemente de lo que hace, es una expresión con el valor 5_ De esta manera, escribir algo como '$b = ($a = 5)' es como escribir '$a = 5; $b = 5;' (un punto y coma marca el final de una instrucción)_ Como las asignaciones se evalúan de derecha a izquierda, puedes escribir también '$b = $a = 5'_

    Otro buen ejemplo de orientación a expresiones es el pre y post incremento y decremento_ Los usuarios de PHP/FI 2 y los de otros muchos lenguajes les sonará la notación variable++ y variable___ Esto son las operaciones de incremento y decremento_ En PHP/FI 2, la instrucción '$a++' no tiene valor (no es una expresión), y no puedes asignarla o usarla de ningún otro modo_ PHP mejora las características del incremento/decremento haciéndolos también expresiones, como en C_ En PHP, como en C, hay dos tipos de incremento _ pre_incremento y post_incremento_ Ambos, en esencia, incrementan la variable y el efecto en la variable es idéntico_ La diferencia radica en el valor de la propia expresion incremento_ El preincremento , escrito '++$variable', se evalúa al valor incrementado (PHP incrementa la variable antes de leer su valor, de ahí el nombre 'preincremento')_ El postincremento, escrito '$variable++', se evalúa al valor original de $variable antes de realizar el incremento (PHP incrementa la variable después de leer su valor, de ahí el nombre 'postincremento')_

    Un tipo muy corriente de expresiones son las expresiones de comparación_ Estas expresiones se evalúan a 0 o 1, significando FALSO (FALSE) o CIERTO (TRUE), respectivamente_ PHP soporta > (mayor que), >= (mayor o igual que), == (igual que), != (distinto), < (menor que) y <= (menor o igual que)_ Estas expresiones se usan frecuentemente dentro de la ejecución condicional como la instrucción if_

    El último tipo de expresiones que trataremos, es la combinación operador_asignación_ Ya sabes que si quieres incrementar $a en 1, basta con escribir '$a++' o ++$a'_ Pero qué pasa si quieres añadir más de 1, por ejemplo 3? Podrías escribir '$a++' múltiples veces, pero no es una forma de hacerlo ni eficiente ni cómoda_ Una práctica mucho más corriente es escribir '$a = $a + 3'_ '$a + 3' se evalúa al valor de $a más 3, y se asigna de nuevo a $a, lo que resulta en incrementar $a en 3_ En PHP, como en otros lenguajes como C, puedes escribir esto de una forma más concisa, que con el tiempo será más clara y también fácil de entender_ Añadir 3 al valor actual de $a se puede escribir como '$a += 3'_ Esto quiere decir exactamente "toma el valor de $a, súmale 3, y asígnalo otra vez 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', como el valor de una asignación normal y corriente, es el valor asignado_ Ten en cuenta que NO es 3, sino el valor combinado de $a más 3 (ése es el valor asignado a $a)_ Cualquier operación binaria puede ser usada en forma de operador_asignación, por ejemplo '$a _= 5' (restar 5 del valor de $a), '$b *= 7' (multiplicar el valor de $b por 7), etc_

    Hay otra expresión que puede parecer extraña si no la has visto en otros lenguaes, el operador condicional ternario:

    <?php
    $first ? $second : $third
    ?>

    Si el valor de la primera subexpresión es verdadero (distinto de cero), entonces se evalúa la segunda subexpresión, si no, se evalúa la tercera y ése es el valor_

    El siguiente ejemplo te ayudará a comprender un poco mejor el pre y post incremento y las expresiones en general:

    <?php
    function double($i) {
        return $i*2;
    }
    $b = $a = 5;        /* asignar el valor cinco a las variables $a y $b */
    $c = $a++;          /* postincremento, asignar el valor original de $a (5) a $c */
    $e = $d = ++$b;     /* preincremento, asignar el valor incrementado de $b (6) a 
                           $d y a $e */
    
    /* en este punto, tanto $d como $e son iguales a 6 */
    
    $f = double($d++);  /* asignar el doble del valor de $d antes
                           del incremento, 2*6 = 12 a $f */
    $g = double(++$e);  /* asignar el doble del valor de $e despu&eacute;s
                           del incremento, 2*7 = 14 a $g */
    $h = $g += 10;      /* primero, $g es incrementado en 10 y termina valiendo 24_
                           despu&eacute;s el valor de la asignaci&oacute;n (24) se asigna a $h, 
                           y $h tambi&eacute;n acaba valiendo 24_ */
    ?>

    Al principio del capítulo hemos dicho que describiríamos los distintos tipos de instrucciones y, como prometimos, las expresiones pueden ser instrucciones_ Sin embargo, no todas las expresiones son instrucciones_ En este caso, una instrucción 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 instrucción en sí misma_ Por otro lado '$b=$a=5:' sí es una instrucción válida_

    Una última cosa que vale la pena mencionar, es el valor booleano de las expresiones_ En muchas ocasiones, principalmente en condicionales y bucles, no estás interesado en el valor exacto de la expresión, sino únicamente si es TRUE ó FALSE Las constantes TRUE y FALSE son los dos posibles valores booleanos_ Cuando es necesario, una expresión se puede transformar automáticamente al tipo booleano_ Consultar la sección sobre type_casting para obtener detalles de como se hace_

    PHP brinda una completa y potente implementación de expresiones, y documentarla enteramente está más allá del objetivo de este manual_ Los ejemplos anteriores, deberían darte una buena idea de qué son las expresiones y cómo construir expresiones útiles_ A lo largo del resto del manual, escribiremos expr para indicar una expresión PHP válida_

     
       



    registro de dominios | alojamiento web | hosting por publicidad

       

     

    Manual de linux Manual de apache Manual de php Manual de mysql Manual de SQL Manual del Plesk Como funciona Paypal Manual de html