En este capítulo discutiremos el uso de diferentes operadores en PHP.
En PHP, el operador de asignación = se utiliza para asignar un valor a una variable.
En PHP, el operador aritmético + se utiliza para sumar valores.
operador | nombre | describir | Ejemplo | resultado |
---|---|---|---|---|
x + y | agregar | suma de x e y | 2+2 | 4 |
xy | reducir | diferencia entre x e y | 5-2 | 3 |
x*y | llevar | producto de x e y | 5*2 | 10 |
x/y | eliminar | Cociente de x e y | 15/5 | 3 |
x % y | Módulo (resto de la división) | Resto cuando x se divide por y | 5% 210% 810% 2 | 120 |
-incógnita | negar | negar x | -2 | -2 |
ab | yuxtaponer | Concatenar dos cadenas | "Hola". "Ja". | Hola |
Los siguientes ejemplos demuestran diferentes resultados utilizando diferentes operadores aritméticos:
<?php $x = 10 ; $ y = 6 ; ( $x + $y ) ; // Salida 16 eco ' <br> ' ; // Salto de línea eco ( $x - $y ) ; // Salida 4 eco ' <br> ' ; // Salto de línea eco ( $x * $y ) ; // Salida 60 eco ' <br> ' ; // Salto de línea eco ( $x / $y ) ; // Salida 1.6666666666667 eco ' <br> ' ; // Salto de línea eco ( $x % $y ) ; // Salida 4 eco ' <br> ' ; // Salto de línea eco - $x ? >
La versión PHP7+ tiene un nuevo operador de división de enteros intdiv() , ejemplos de uso:
<?php var_dump ( intdiv ( 10 , 3 ) ) ?> ;
El ejemplo anterior generará:
entero(3)
En PHP, el operador de asignación básico es "=". Significa que el operando izquierdo se establece en el valor de la expresión de la derecha. Es decir, el valor de "$x = 5" es 5.
operador | equivalente a | describir |
---|---|---|
x = y | x = y | El operando izquierdo se establece en el valor de la expresión de la derecha. |
x += y | x = x + y | agregar |
x -= y | x = x - y | reducir |
x*=y | x = x * y | llevar |
x/= y | x = x / y | eliminar |
x%=y | x = x % y | Módulo (resto de la división) |
a .= b | a = a b . | Concatenar dos cadenas |
Los siguientes ejemplos demuestran diferentes resultados utilizando diferentes operadores de asignación:
<?php $x = 10 ; eco $x ; // Salida 10 $y = 20 ; $y + = 100 ; $y ; // Salida 120 $z = 50 ; $z - = 25 ; $z ; // Salida 25 $yo = 5 ; $yo * = 6 ; $yo ; // Salida 30 $j = 10 ; $j / = 5 ; $j ; // Salida 2 $k = 15 ; $k % = 4 ; $k ; // Salida 3 ?>
Los siguientes ejemplos demuestran el mismo resultado utilizando diferentes operadores de cadena:
<?php $a = " Hola " ; $ b = $a " ¡ mundo! " ; $b ; // Salida ¡Hola mundo! $x = " Hola " ; $x . = " mundo! " ; $x ; // Salida ¡Hola mundo! ?>
operador | nombre | describir |
---|---|---|
++x | pre-incremento | Suma 1 a x y devuelve x |
x++ | post-incremento | Devuelve x, luego suma 1 a x |
--incógnita | Pre-decremento | Disminuye x en 1, luego devuelve x |
x-- | Disminuyendo después | Devuelve x, luego disminuye x en 1 |
El siguiente ejemplo demuestra los resultados del uso de los operadores de incremento/decremento:
<?php $x = 10 ; eco ++ $x // Salida 11 $y = 10 ; eco $y ++; // Salida 10 $ z = 5 ; eco - $ z ; $i = 5 ; eco $i --; // Salida 5 ?>
Los operadores de comparación le permiten comparar dos valores:
operador | nombre | describir | Ejemplo |
---|---|---|---|
x == y | igual | Devuelve verdadero si x es igual a y | 5==8 devuelve falso |
x === y | absolutamente igual a | Devuelve verdadero si x es igual a y y son del mismo tipo | 5==="5" devuelve falso |
x != y | no igual a | Devuelve verdadero si x no es igual a y | 5!=8 devuelve verdadero |
x <> y | no igual a | Devuelve verdadero si x no es igual a y | 5<>8 devuelve verdadero |
x !== y | Definitivamente no es igual a | Devuelve verdadero si x no es igual a y, o no son del mismo tipo | 5!=="5" devuelve verdadero |
x > y | más que | Devuelve verdadero si x es mayor que y | 5>8 devuelve falso |
x < y | menos que | Devuelve verdadero si x es menor que y | 5<8 devuelve verdadero |
x >= y | Mayor o igual a | Devuelve verdadero si x es mayor o igual que y | 5>=8 devuelve falso |
x <= y | menor o igual a | Devuelve verdadero si x es menor o igual que y | 5<=8 devuelve verdadero |
Los siguientes ejemplos demuestran diferentes resultados utilizando algunos operadores de comparación:
<?php $x = 100 ; $y = " 100 " ; var_dump ( $ x == $y ) ; " <br> " ; var_dump ( $x === $ y ) ; " <br> " ; var_dump ( $x ! = $y ) ; " <br> " ; var_dump ( $x ! == $y ) ; " <br> " ; $ a = 50 ; $ b = 90 ;" <br> " ; var_dump ( $a < $b ) ? >
operador | nombre | describir | Ejemplo |
---|---|---|---|
x e y | y | Devuelve verdadero si tanto x como y son verdaderos | x=6y=3(x < 10 y y > 1) devuelve verdadero |
x o y | o | Devuelve verdadero si al menos uno de xey es verdadero | x=6y=3(x==6 o y==5) devuelve verdadero |
x xor y | XOR | Si uno y solo uno de xey es verdadero, entonces devuelve verdadero | x=6y=3(x==6 xor y==3) devuelve falso |
x && y | y | Devuelve verdadero si tanto x como y son verdaderos | x=6y=3(x < 10 && y > 1) devuelve verdadero |
x || y | o | Devuelve verdadero si al menos uno de xey es verdadero | x=6y=3(x==5 || y==5) devuelve falso |
!incógnita | No | Si x no es verdadero, devuelve verdadero | x=6y=3!(x==y) devuelve verdadero |
operador | nombre | describir |
---|---|---|
x + y | recolectar | el conjunto de x e y |
x == y | igual | Devuelve verdadero si xey tienen el mismo par clave/valor |
x === y | Igualdad | Devuelve verdadero si xey tienen los mismos pares clave/valor en el mismo orden y tipo |
x != y | No igual | Devuelve verdadero si x no es igual a y |
x <> y | No igual | Devuelve verdadero si x no es igual a y |
x !== y | No idéntico | Devuelve verdadero si x no es igual a y |
Los siguientes ejemplos demuestran diferentes resultados utilizando algunos operadores de matriz:
<?php $x = matriz ( " a " => " rojo " , " b " => " verde " ) ; $ y = matriz ( " c " => " azul " , " d " => " amarillo " ) ; = $x + $y ; // Combina matrices $x y $y var_dump ( $ z ) ; var_dump ( $ x ! = $ y ) ; var_dump ( $ x === $ y ) ; var_dump ( $ x ! = $ y ) ; x !== $y ) ? >
Otro operador condicional es el operador "?:" (o ternario).
(expr1) ? (expr2) : (expr3)
El valor cuando expr1 se evalúa como VERDADERO es expr2, y cuando expr1 se evalúa como FALSO, el valor es expr3.
A partir de 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 VERDADERO y expr3 en caso contrario.
En el siguiente ejemplo, se considera que la solicitud $_GET contiene el valor del usuario. Si es así, se devuelve $_GET['usuario']; de lo contrario, no se devuelve nadie:
<?php $prueba = ' Tutorial del codificador ' ; // Método de escritura normal $nombre de usuario = isset ( $ prueba ) ? $prueba : ' nadie ' ; $nombre de usuario , PHP_EOL ; // Método de escritura de la versión PHP 5.3+ $nombre de usuario = $prueba ?: ' nadie ' ; eco $nombre de usuario , PHP_EOL ? >
Tutoriales para codificadores Tutoriales para codificadores
Nota: PHP_EOL es un carácter de nueva línea, compatible con plataformas más grandes.
Hay un operador coalescente NULL adicional ??
en la versión PHP7+. El ejemplo es el siguiente:
<?php // Si $_GET['usuario'] no existe, devuelve 'nadie'; de lo contrario, devuelve el valor de $_GET['usuario'] $nombredeusuario = $_GET [ ' usuario ' ] ?? ' nadie ' // Operador ternario similar $nombre de usuario = isset ( $ _GET [ ' usuario ' ] ) ? $_GET [ ' usuario ' ] : ' nadie ' ;
PHP7+ admite operadores de comparación combinados, los ejemplos son los siguientes:
<?php // tipo entero eco 1 <=> 1 ; // 0 eco 1 <=> 2 ; // -1 eco 2 <=> 1 ; // 1 // tipo de punto flotante eco 1.5 <=> 1.5 ; // 0 eco 1 .5 <=> 2 .5 ; // -1 eco 2.5 <=> 1.5 ; // 1 // Cadena eco " un " <=> " un " ; // 0 eco " a " <=> " b " ; // -1 eco " b " <=> " a " ; // 1 ?>
La siguiente tabla enumera los operadores de mayor a menor prioridad. Los operadores en la misma línea tienen la misma precedencia y la dirección en la que se combinan determina el orden de evaluación.
Nota : Izquierda = de izquierda a derecha, derecha = de derecha a izquierda.
Dirección de encuadernación | operador | información adicional |
---|---|---|
ninguno | clonar nuevo | clon y nuevo |
Izquierda | [ | formación() |
bien | ++ -- ~ (int) (flotante) (cadena) (matriz) (objeto) (bool) @ | Tipos e incremento/decremento |
ninguno | instancia de | tipo |
bien | ! | Operadores lógicos |
Izquierda | */% | operadores aritméticos |
Izquierda | + – . | Operadores aritméticos y de cadenas |
Izquierda | << >> | Operadores de bits |
ninguno | == != === !== <> | operador 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 |
bien | = += -= *= /= .= %= &= |= ^= <<= >>= => | operador de asignación |
Izquierda | y | Operadores lógicos |
Izquierda | xor | Operadores lógicos |
Izquierda | o | Operadores lógicos |
Izquierda | , | Utilizado en muchos lugares. |
En precedencia de operadores, o, ||, && y y son todos operadores lógicos con el mismo efecto, pero sus prioridades son diferentes.
<?php // Prioridad: && > = > y // Prioridad: || > = > o $a = 3 ; $b = falso ; $c = $a o $b ; var_dump ( $c ) ; // $c aquí es el valor int 3, no el valor booleano verdadero $d = $a || $b ; var_dump ( $d ) ; // $d aquí es el valor booleano verdadero ?>
El resultado de salida del ejemplo anterior es:
int(3)bool(verdadero)
Indicamos claramente el orden de las operaciones mediante el par de corchetes, en lugar de depender de la precedencia y asociatividad de los operadores, lo que generalmente puede aumentar la legibilidad del código.
<?php // Operación de prioridad entre corchetes $a = 1 ; $ b = 2 ; $c = 3 ; $d = $a + $b * $c ; $d ; eco " n " ; $e = ( $a + $b ) * $c // Usar paréntesis ; eco $e ; eco " n " ? >
El resultado de salida del ejemplo anterior es:
79