PHP Operadores
En este capítulo discutiremos la aplicación de los diferentes operadores en PHP.
En PHP, los operadores de asignación=se utilizan para asignar valores a las variables.
En PHP, los operadores aritméticos+se utilizan para sumar valores entre sí.
Operadores aritméticos de PHP
| Operador | Nombre | Descripción | Ejemplo | Resultado |
|---|---|---|---|---|
| x + y | Suma | Suma de x y y | 2 + 2 | 4 |
| x - y | Resta | Diferencia de x y y | 5 - 2 | 3 |
| x * y | Multiplicación | Producto de x y y | 5 * 2 | 10 |
| x / y | División | Cociente de x y y | 15 / 5 | 3 |
| x % y | Módulo (resto de la división) | Resto de x dividido por y | 5 % 2 10 % 8 10 % 2 |
1 2 0 |
| -x | Negación | Toma el signo opuesto de x | <?php $x = 2; echo -$x; ?> |
-2 |
| ~x | Inversión binaria | Invierte x, realizando la operación "NOT" a nivel de bits. Regla de la operación: ~1=-2; ~0=-1; |
<?php $x = 2; echo ~$x; ?> |
-3 |
| a . b | Concatenación | Concatena dos cadenas | "Hi" . "Ha" | HiHa |
El siguiente ejemplo demuestra los diferentes resultados obtenidos con diferentes operadores aritméticos:
Ejemplo
Pruébalo »
La versión PHP7+ agrega el operador de división enteraintdiv(), dicha función devuelve el valor del primer parámetro dividido entre el segundo parámetro y lo redondea (hacia abajo). Ejemplo de uso:
Ejemplo
El ejemplo anterior generará la siguiente salida:
int(3)
Operadores de asignación de PHP
En PHP, el operador de asignación básico es=. Significa que el operando de la izquierda se establece al valor de la expresión de la derecha. Es decir,$x = 5el valor de $x es 5.
| Operador | Equivale a | Descripción |
|---|---|---|
| x = y | x = y | El operando izquierdo se establece al valor de la expresión de la derecha |
| x += y | x = x + y | Suma |
| x -= y | x = x - y | Resta |
| x *= y | x = x * y | Multiplicación |
| x /= y | x = x / y | División |
| x %= y | x = x % y | Módulo (resto de la división) |
| a .= b | a = a . b | Concatena dos cadenas |
El siguiente ejemplo demuestra los diferentes resultados obtenidos con diferentes operadores de asignación:
Ejemplo
Pruébalo »
El siguiente ejemplo demuestra los mismos resultados obtenidos al usar diferentes operadores de cadena:
Ejemplo
Pruébalo »
Operadores de incremento/decremento de PHP
| Operador | Nombre | Descripción |
|---|---|---|
| ++ x | Pre-incremento | Incrementa x en 1 y luego devuelve x |
| x ++ | Post-incremento | Devuelve x y luego incrementa x en 1 |
| -- x | Pre-decremento | Decrementa x en 1 y luego devuelve x |
| x -- | Post-decremento | Devuelve x y luego decrementa x en 1 |
El siguiente ejemplo demuestra los resultados obtenidos con los operadores de incremento/decremento:
Ejemplo
Pruébalo »
Operadores de comparación de PHP
Los operadores de comparación le permiten comparar dos valores:
| Operador | Nombre | Descripción | Ejemplo |
|---|---|---|---|
| x == y | Igual | Devuelve true si x es igual a y | 5==8 devuelve false |
| x === y | Idéntico | Devuelve true si x es igual a y y tienen el mismo tipo | 5==="5" devuelve false |
| x != y | No igual | Devuelve true si x no es igual a y | 5!=8 devuelve true |
| x <> y | No igual | Devuelve true si x no es igual a y | 5<>8 devuelve true |
| x !== y | No idéntico | Devuelve true si x no es igual a y, o si no son del mismo tipo | 5!=="5" devuelve true |
| x > y | Mayor que | Devuelve true si x es mayor que y | 5>8 devuelve false |
| x < y | Menor que | Devuelve true si x es menor que y | 5<8 devuelve true |
| x >= y | Mayor o igual que | Devuelve true si x es mayor o igual que y | 5>=8 devuelve false |
| x <= y | Menor o igual que | Devuelve true si x es menor o igual que y | 5<=8 devuelve true |
El siguiente ejemplo demuestra los diferentes resultados obtenidos con algunos operadores de comparación:
Ejemplo
Pruébalo »
Operadores lógicos de PHP
| Operador | Nombre | Descripción | Ejemplo |
|---|---|---|---|
| x and y | y | Devuelve true si x e y son ambos true | x=6 y=3 (x < 10 and y > 1) devuelve true |
| x or y | o | Devuelve true si al menos uno de x e y es true | x=6 y=3 (x==6 or y==5) devuelve true |
| x xor y | Xor | Devuelve true si solo uno de x e y es true | x=6 y=3 (x==6 xor y==3) devuelve false |
| x && y | y | Devuelve true si x e y son ambos true | x=6 y=3 (x < 10 && y > 1) devuelve true |
| x || y | o | Devuelve true si al menos uno de x e y es true | x=6 y=3 (x==5 || y==5) devuelve false |
| ! x | No | Devuelve true si x no es true | x=6 y=3 !(x==y) devuelve true |
Operadores de arrays de PHP
| Operador | Nombre | Descripción |
|---|---|---|
| x + y | Unión | Unión de x y y |
| x == y | Igual | Devuelve true si x e y tienen los mismos pares clave/valor |
| x === y | Idéntico | Devuelve true si x e y tienen los mismos pares clave/valor, en el mismo orden y del mismo tipo |
| x != y | No igual | Devuelve true si x no es igual a y |
| x <> y | No igual | Devuelve true si x no es igual a y |
| x !== y | No idéntico | Devuelve true si x no es igual a y |
El siguiente ejemplo demuestra los diferentes resultados obtenidos con algunos operadores de arrays:
Ejemplo
Pruébalo »
Operador ternario
Otro operador condicional es el operador "?:" (o ternario).
Sintaxis
(expr1) ? (expr2) : (expr3)
El valor es expr2 cuando expr1 se evalúa como TRUE, y expr3 cuando expr1 se evalúa como FALSE.
Desde PHP 5.3, se puede omitir la parte central del operador ternario. La expresión expr1 ?: expr3 devuelve expr1 si expr1 se evalúa como TRUE; de lo contrario, devuelve expr3.
Ejemplo
En el siguiente ejemplo se comprueba si la solicitud $_GET contiene el valor user; si lo tiene, devuelve $_GET['user']; de lo contrario, devuelve nobody:
Ejemplo
Nota:PHP_EOLEs un salto de línea, compatible con más plataformas.
En PHP7+ se añadió el operador de fusión NULL??, como en el siguiente ejemplo:
Ejemplo
Operador de comparación combinado (PHP7+)
PHP7+ admite el operador de comparación combinado (combined comparison operator), también llamado operador nave espacial, cuyo símbolo es<=>. El operador de comparación combinado puede implementar fácilmente la comparación de dos variables; por supuesto, no se limita a la comparación de datos numéricos.
El formato de sintaxis es el siguiente:
$c = $a <=> $b;
Se interpreta de la siguiente manera:
- Si $a > $b, entonces$cel valor de ... es1。
- Si$a == $b, entonces$cel valor de ... es0。
- Si$a < $b, entonces$cel valor de ... es-1。
El ejemplo es el siguiente:
Ejemplo
Precedencia de operadores
La siguiente tabla enumera los operadores de mayor a menor precedencia. Los operadores en la misma línea tienen la misma precedencia; en este caso, su asociatividad determina el orden de evaluación.
Nota: izquierda = de izquierda a derecha, derecha = de derecha a izquierda.
| Asociatividad | Operador | Información adicional |
|---|---|---|
| Ninguno | clone new | clone y new |
| izquierda | [ | array() |
| derecha | ++ -- ~ (int) (float) (string) (array) (object) (bool) @ | Tipos y incremento/decremento |
| Ninguno | instanceof | Tipos |
| derecha | ! | Operadores lógicos |
| izquierda | * / % | Operadores aritméticos |
| izquierda | + – . | Operadores aritméticos y operadores de cadena |
| izquierda | << >> | Operadores de bits |
| Ninguno | == != === !== <> | Operadores de comparación |
| izquierda | & | Operadores de bits y referencias |
| izquierda | ^ | Operadores de bits |
| izquierda | | | Operadores de bits |
| izquierda | && | Operadores lógicos |
| izquierda | || | Operadores lógicos |
| izquierda | ? : | Operador ternario |
| derecha | = += -= *= /= .= %= &= |= ^= <<= >>= => | Operadores de asignación |
| izquierda | and | Operadores lógicos |
| izquierda | xor | Operadores lógicos |
| izquierda | or | Operadores lógicos |
| izquierda | , | Se utiliza en varios lugares |
En la precedencia de operadores, or y ||, && y and son operadores lógicos; tienen el mismo efecto, pero su precedencia es diferente.
Ejemplo
El resultado del ejemplo anterior es:
int(3) bool(true)
Uso de paréntesis
Podemos usar el emparejamiento de paréntesis para indicar claramente el orden de las operaciones, en lugar de depender de la precedencia y la asociatividad de los operadores; esto generalmente aumenta la legibilidad del código.
Ejemplo
El resultado del ejemplo anterior es:
7 9Otras extensiones