Expresiones y operadores
Qué es una expresión
- Una expresión es un conjunto de operandos (valores) unidos con una serie de operadores
- que tras ser evaluados se obtiene un valor
|
- 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
Expresión aritmética
Operador
|
Nombre
|
Resultado
|
$a
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
Expresión aritmética con operadores unarios
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>
- Operadores
$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>';
?>
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
Expresión aritmética con operadores unarios
Operador
|
Nombre
|
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.
Expresión aritmética con operadores unarios
Operador
|
Nombre
|
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
$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"
Expresiones Booleanas
- De ellas se va a obtener un valor booleano,
- 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 lógicas, deben de intervenir dos valores booleanos.
Expresión de comparación
Operador
|
Nombre
|
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.
|
No idéntico
|
true si $a no es igual a $b, o si no son del mismo tipo.
|
$a < $b
|
Menor que
|
true si $a es estrictamente menor que $b.
|
$a > $b
|
Mayor que
|
true si $a es estrictamente mayor que $b.
|
$a <= $b
|
Menor o igual que
|
true si $a es menor o igual que $b.
|
$a >= $b
|
Mayor o igual que
|
true si $a es mayor o igual que $b.
|
Expresión de comparación que no retorna booleano
Operador
|
Nombre
|
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
Expresión lógicas
Operador
|
Nombre
|
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
$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
- 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
$listado = `ls -la`;
echo $listado;