Diferencia entre revisiones de «Plantilla:PHP/Expresiones»
De WikiEducator
(→Expresiones aritméticas) |
(→Expresiones y operadores) |
||
(17 revisiones intermedias por el mismo usuario no mostrado) | |||
Línea 1: | Línea 1: | ||
− | == | + | ==Expresiones y operadores== |
<br /> | <br /> | ||
{{MRM_Definicion|Title=Qué es una expresión| | {{MRM_Definicion|Title=Qué es una expresión| | ||
Línea 24: | Línea 24: | ||
! width="200 px" |Resultado | ! width="200 px" |Resultado | ||
|- | |- | ||
− | + | |+$a | |
|Identidad | |Identidad | ||
|Conversión de $a a int o float según el caso. | |Conversión de $a a int o float según el caso. | ||
Línea 56: | Línea 56: | ||
|Resultado de elevar $a a la potencia $bésima. | |Resultado de elevar $a a la potencia $bésima. | ||
|} | |} | ||
+ | |||
+ | ;Operadores unarios | ||
+ | *Son operadores que actúan sobre un único valor | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |+ style="background:DarkSlateBlue; color:white; text-align:center;"|'''Expresión aritmética con operadores unarios''' | ||
+ | |- style="background:Lavender; color:black" | ||
+ | ! width="60 px" |Operador | ||
+ | ! width="100 px" |Nombre | ||
+ | ! width="200 px" |Resultado | ||
+ | |||
+ | |- | ||
+ | | ++$a | ||
+ | |Pre-incremento | ||
+ | |Incrementa $a en uno, y luego retorna $a. | ||
+ | |- | ||
+ | |$a++ | ||
+ | |Post-incremento | ||
+ | |Retorna $a, y luego incrementa $a en uno. | ||
+ | |- | ||
+ | | --$a | ||
+ | |Pre-decremento | ||
+ | |Decrementa $a en uno, luego retorna $a. | ||
+ | |- | ||
+ | |$a-- | ||
+ | |Post-decremento | ||
+ | |Retorna $a, luego decrementa $a en uno. | ||
+ | |} | ||
+ | ;Mira el siguiente código entiéndelo | ||
+ | <source lang=php> | ||
+ | $a=5; | ||
+ | $a++; | ||
+ | echo "Valor de a es $a"; | ||
+ | </source> | ||
+ | Es igual que | ||
+ | <source lang=php> | ||
+ | $a=5; | ||
+ | ++$a; | ||
+ | echo "Valor de a es $a"; | ||
+ | </source> | ||
+ | Pero | ||
+ | <source lang=php> | ||
+ | $a=5; | ||
+ | echo "Valor de a es ".++$a."<br />"; | ||
+ | echo "Valor de a es $a<br />"; | ||
+ | </source> | ||
+ | No es igual que | ||
+ | <source lang=php> | ||
+ | $a=5; | ||
+ | echo "Valor de a es ".$a++."<br />"; | ||
+ | echo "Valor de a es $a<br />"; | ||
+ | </source> | ||
+ | {{MRM_Pregunta| | ||
+ | '''''Lo ves claro''''' | ||
+ | }} | ||
+ | }} | ||
+ | </div> | ||
+ | |||
+ | <div class="slide"> | ||
+ | ;Operadores | ||
+ | <source lang=php> | ||
+ | $a=5; | ||
+ | if ($a++==5) | ||
+ | echo '$a que vale '.$a.' dice que vale 5 ???? <br>' | ||
+ | . 'Esto es por que primero compara y luego incrementa<br>'; | ||
+ | |||
+ | echo 'ahora $a vale '.$a.'<br>'; | ||
+ | |||
+ | if (++$a==6) | ||
+ | echo 'esto nunca saldrá ya que $a se incrementa antes de comparar'; | ||
+ | else | ||
+ | echo 'efectivamente ahora $a ya no vale 6 sino '.$a.'<br>'; | ||
+ | ?> | ||
+ | </source> | ||
+ | |||
+ | |||
+ | ===Expresiones de cadenas=== | ||
+ | *Sólo presenta un operador que se utiliza para juntar dos cadenas | ||
+ | *Con este tipo de valores, es importante recordar la gran cantidad de funciones disponibles que realizan operaciones sobre ellas | ||
+ | {| class="wikitable" | ||
+ | |+ style="background:DarkSlateBlue; color:white; text-align:center;"|'''Expresión aritmética con operadores unarios''' | ||
+ | |- style="background:Lavender; color:black" | ||
+ | ! width="60 px" |Operador | ||
+ | ! width="100 px" |Nombre | ||
+ | ! width="200 px" |Resultado | ||
+ | |- | ||
+ | | '''''"Hola". " Caracola "''''' | ||
+ | |Concatenar | ||
+ | |Retorna la cadena formada por la unión de ambas | ||
+ | |} | ||
+ | |||
+ | ===Expresión de asignación=== | ||
+ | *Puede parecer extraño ver '''''una instrucción de asignación''''' como una expresión de asignación. Esto ocurre, por que en php el valor asignado es devuelto por la expresión. | ||
+ | {| class="wikitable" | ||
+ | |+ style="background:DarkSlateBlue; color:white; text-align:center;"|'''Expresión aritmética con operadores unarios''' | ||
+ | |- style="background:Lavender; color:black" | ||
+ | ! width="60 px" |Operador | ||
+ | ! width="100 px" |Nombre | ||
+ | ! width="200 px" |Resultado | ||
+ | |- | ||
+ | | $a = 10 | ||
+ | | Asiganación | ||
+ | | La variable recibe el valor asignado y éste es devuelto por la expresión | ||
+ | |} | ||
+ | *Es muy importante ver que este operador se puede utilizar con otros, de forma que la variable que recibe el valor asignado interviene como primer operando en la asignación. | ||
+ | Así tenemos los siguentes ejemplos | ||
+ | <source lang= php> | ||
+ | $a = 4; | ||
+ | $a+=5; // $a = $a+5 | ||
+ | $a-=45; // $a = $a-4 | ||
+ | $a*=45; // $a = $a*4 | ||
+ | $a/=45; // $a = $a/4 | ||
+ | |||
+ | |||
+ | $texto ="Hola caracola"; | ||
+ | $texto .=" y más texto que añado"; $texto = $texto . " y más texto que añado" | ||
+ | |||
+ | </source> | ||
+ | |||
===Expresiones Booleanas=== | ===Expresiones Booleanas=== | ||
− | *De ellas se va a obtener un valor booleano | + | *De ellas se va a obtener un valor booleano, |
*Pueden ser de dos tipos: de comparación o lógicas | *Pueden ser de dos tipos: de comparación o lógicas | ||
*En las expresiones de comparación deben de intervernir dos valores del mismo tipo | *En las expresiones de comparación deben de intervernir dos valores del mismo tipo | ||
Línea 65: | Línea 184: | ||
|+ style="background:DarkSlateBlue; color:white; text-align:center;"|'''Expresión de comparación''' | |+ style="background:DarkSlateBlue; color:white; text-align:center;"|'''Expresión de comparación''' | ||
|- style="background:Lavender; color:black" | |- style="background:Lavender; color:black" | ||
− | ! width=" | + | ! width="100 px" |Operador |
! width="100 px" |Nombre | ! width="100 px" |Nombre | ||
− | ! width=" | + | ! width="400 px" |Resultado |
+ | |- | ||
+ | |$a == $b | ||
+ | |'''''Igual''''' | ||
+ | |true si $a es igual a $b después de la manipulación de tipos. | ||
+ | |- | ||
+ | |$a === $b | ||
+ | |'''''Idéntico''''' | ||
+ | |true si $a es igual a $b, y son del mismo tipo. | ||
+ | |||
+ | |- | ||
+ | |$a != $b o | ||
+ | |'''''Diferente''''' | ||
+ | |true si $a no es igual a $b después de la manipulación de tipos. | ||
|- | |- | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|-$a !== $b | |-$a !== $b | ||
− | |No idéntico | + | |'''''No idéntico''''' |
− | true si $a no es igual a $b, o si no son del mismo tipo. | + | |true si $a no es igual a $b, o si no son del mismo tipo. |
− | |-$a < $b | + | |- |
− | |Menor que | + | |$a < $b |
− | true si $a es estrictamente menor que $b. | + | |'''''Menor que''''' |
− | |-$a > $b | + | |true si $a es estrictamente menor que $b. |
− | |Mayor que | + | |- |
− | true si $a es estrictamente mayor que $b. | + | |$a > $b |
− | |-$a <= $b | + | |'''''Mayor que''''' |
− | |Menor o igual que | + | |true si $a es estrictamente mayor que $b. |
− | true si $a es menor o igual que $b. | + | |- |
− | |-$a >= $b | + | |$a <= $b |
− | |Mayor o igual que | + | |'''''Menor o igual que''''' |
− | true si $a es mayor o igual que $b. | + | |true si $a es menor o igual que $b. |
− | |- | + | |- |
− | + | |$a >= $b | |
− | + | |'''''Mayor o igual que''''' | |
− | + | |true si $a es mayor o igual que $b. | |
+ | |- | ||
|} | |} | ||
+ | |||
+ | |||
+ | {| class="wikitable" | ||
+ | |+ style="background:DarkSlateBlue; color:white; text-align:center;"|'''Expresión de comparación que no retorna booleano''' | ||
+ | |- style="background:Lavender; color:black" | ||
+ | ! width="100 px" |Operador | ||
+ | ! width="100 px" |Nombre | ||
+ | ! width="400 px" |Resultado | ||
+ | |- | ||
+ | |||
+ | |$a <=> $b | ||
+ | |'''''Nave espacial''''' | ||
+ | |Un integer menor que, igual a, o mayor que cero cuando $a es respectivamente menor que, igual a, o mayor que $b. Disponible a partir de PHP 7. | ||
+ | |- | ||
+ | |$a ?? $b ?? $c | ||
+ | |'''''Fusión de null''''' | ||
+ | |El primer operando de izquierda a derecha que exista y no sea null. null si no hay valores definidos y no son null. Disponible a partir de PHP 7. | ||
+ | |} | ||
+ | ;Operadores lógicos | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |+ style="background:DarkSlateBlue; color:white; text-align:center;"|'''Expresión lógicas''' | ||
+ | |- style="background:Lavender; color:black" | ||
+ | ! width="100 px" |Operador | ||
+ | ! width="100 px" |Nombre | ||
+ | ! width="400 px" |Resultado | ||
+ | |- | ||
+ | |$a and $b | ||
+ | |'''''And (y)''''' | ||
+ | |true si tanto $a como $b son true. | ||
+ | |- | ||
+ | |$a or $b | ||
+ | |'''''Or (o inclusivo)''''' | ||
+ | |true si cualquiera de $a o $b es true. | ||
+ | |- | ||
+ | |$a xor $b | ||
+ | |'''''Xor (o exclusivo)''''' | ||
+ | |true si $a o $b es true, pero no ambos. | ||
+ | |- | ||
+ | |! $a | ||
+ | |'''''Not (no)''''' | ||
+ | |true si $a no es true. | ||
+ | |- | ||
+ | |$a && $b | ||
+ | |'''''And (y)''''' true si tanto $a como $b son true. | ||
+ | |- | ||
+ | |$a || $b | ||
+ | |'''''Or (o inclusivo)''''' true si cualquiera de $a o $b es true. | ||
+ | |} | ||
+ | ===Otros operadores=== | ||
+ | *En php existen otros operadores cuya evaluación no retorna un valor concreto, si no que tiene una acción definia | ||
+ | ;Operador de referencia | ||
+ | ;'''''&''''' | ||
+ | *Con este operador conseguimos obtener una referencia en memoria de una variable, por lo que, después de aplicarlo, podemos realizar acceso a esa posición de memoria con difenten identificador. Esta característica se conoce como '''''Aliasing''''' y no todos los lenguajes de programación la presentan | ||
+ | |||
+ | <source lang=php> | ||
+ | $a = 10; | ||
+ | $b = &$a; | ||
+ | $b = 20; //Ahora tanto $a, como $b valen 20 | ||
+ | echo "\$a vale $a y \$b vale $b"; //mostrará $a vale 20 y $b vale 20 | ||
+ | </source> | ||
+ | ;Operador de ejecución | ||
+ | ;'''''``''''' | ||
+ | *Está formado por comillas inclinadas | ||
+ | *Con este operador vamos a conseguir que se ejecute este comando en la máquina servidor y veremos el resultado de su ejecución | ||
+ | |||
+ | <source lang=php> | ||
+ | $listado = `ls -la`; | ||
+ | |||
+ | echo $listado; | ||
+ | </source> |
Última revisión de 18:51 20 dic 2021
Contenido
Expresiones y operadores
|
- En función del tipo de operador/es, la expresión será de un tipo u otro
- Es importante recordar que php es un lenguaje orientado a las expresiones, por lo que el tipo de operador indica el tipo de exprsión
Tipo de expresiones
- Expresiones aritméticas o numéricas
- Expresiones booleans
- Expresiones de cadena o string
Expresiones aritméticas
- De ellas se va a obtener un valor numérico
Operador | Nombre | Resultado |
---|---|---|
Identidad | Conversión de $a a int o float según el caso. | |
-$a | Negación | Opuesto de $a. |
$a + $b | Suma de $a y $b. | |
$a - $b | Sustracción | Diferencia de $a y $b. |
$a * $b | Multiplicación | Producto de $a y $b. |
$a / $b | División | Cociente de $a y $b. |
$a % $b | Módulo | Resto de $a dividido por $b. |
$a ** $b | Exponenciación | Resultado de elevar $a a la potencia $bésima. |
- Operadores unarios
- Son operadores que actúan sobre un único valor
Operador | Nombre | Resultado |
---|---|---|
++$a | Pre-incremento | Incrementa $a en uno, y luego retorna $a. |
$a++ | Post-incremento | Retorna $a, y luego incrementa $a en uno. |
--$a | Pre-decremento | Decrementa $a en uno, luego retorna $a. |
$a-- | Post-decremento | Retorna $a, luego decrementa $a en uno. |
- Mira el siguiente código entiéndelo
$a=5; $a++; echo "Valor de a es $a";
Es igual que
$a=5; ++$a; echo "Valor de a es $a";
Pero
$a=5; echo "Valor de a es ".++$a."<br />"; echo "Valor de a es $a<br />";
No es igual que
$a=5; echo "Valor de a es ".$a++."<br />"; echo "Valor de a es $a<br />";
}} </div>