Contenidos
Operadores en PHP
PHP posee una amplia variedad de operadores
Estos operadores los podemos distinguir en dos grupos: binarios, que actúan sobre dos operandos y unarios, que sólo requieren un operando
Así, su sintaxis general es:
operand1 operator_Binary operand2
operand1 operator_unary
operator_unary operand1
Operadores aritméticos
PHP suministra las operaciones básicas con los únicos añadidos de los operadores que devuelven el resto de la división entre el operador izquierdo y el derecho; y la exponenciación, que permite elevar el operador izquierdo a la potencia del operador derecho
Operadores aritméticos | |
+ | Suma |
– | Resta |
* | Multiplicación |
/ | División |
% | Resto |
** | Exponenciación |
Nota En otros lenguajes el operador + aplicado a strings, concatena ambas strings en una sola
Sin embargo, en PHP para realizar esta operación se utiliza el operador .
Operadores de incremento (++) y decremento (- -)
Estos operadores son unarios y realizan el autoincremento y el autodecremento a la variable que se les aplica
Además de modificar la variable, devuelven el valor de la misma
El operador de incremento o decremento puede ir delante p detrás de la variable teniendo diferente significado
Si el operador es ++ se sitúa después de la variable se denomina post-incremento, haciendo que primero tome el valor y después se incrementa en una unidad la variable
Si el operador ++ se sitúa antes de la variable se denomina pre-incremento y hace que primero se incremente en una unidad la variable y luego se tome el valor
Si el operador es – – se sitúa después de la variable se denomina post-decremento, haciendo que primero tome el valor y después se decrementa en una unidad la variable
Si el operador – – se sitúa antes de la variable se denomina pre-decremento y hace que primero se decremente en una unidad la variable y luego se tome el valor
Operadores relacionales
Se emplean típicamente en las expresiones condicionales
Los operadores relacionales devuelven valores booleanos
Los operandos pueden ser tanto numéricos como strings
Operadores relacionales | |
> |
Mayor que |
< |
Menor que |
> = |
Mayor o igual que |
< = |
Menor o igual que |
! = |
Distinto que |
< > |
Es equivalente a ! = |
! = = |
Distinto que y del mismo tipo |
= = |
Igual que |
= = = | Igual que y del mismo tipo | < = > |
Comparación de orden (Añadido en PHP 7)
|
? ? |
Devuelve su primer operando si existe y no es NULL De lo contrario devuelve su segundo operando (Añadido en PHP 7) |
Operadores lógicos
Los operandos lógicos está relacionados con los relacionales ya que normalmente los operandos que usan son resultado de expresiones relacionales
Los valores resultantes son booleanos
Operadores lógicos | |
AND | Verdadero si ambos son verdaderos |
& & | Es equivalente a AND |
OR | Verdadero si uno de ellos es verdadero |
| | | Es equivalente a OR |
XOR | Verdadero si uno de ellos es verdadero, pero no ambos |
! | Si era verdadero pasa a falso y viceversa |
Operadores bit a bit
La forma de trabajar de estos operadores es convertir a binario los operandos y luego operar con ellos bit a bit
Operadores bit a bit | |
& | AND |
| | OR |
^ | XOR |
~ | NOT |
<< | Propagación a la izquierda Desplaza el valor hacia la izquierda introduciendo ceros, si se sale de rango se pierden valores |
>> | Propagación a la derecha Desplaza el valor hacia la derecha introduciendo por la izquierda el bit de signo y eliminando los valores que se salgan por la derecha |
Nota Los operadores de propagación toman dos operandos: el primero es la variable a propagar y el segundo es el número de posiciones a propagar
Operadores de asignación
La asignación también es un operador que devuelve la variable modificada
El operador de asignación en PHP es =
Los operadores de asignación que se muestran a continuación no son sino abreviaturas que hacen más cómoda y simples las expresiones, aunque a veces sean más ilegibles
Operadores de asignación | ||
Operador | Expresión | Equivalencia |
= |
$A = $B = $C; $D = ‘Texto’; |
$A = $C; $B = $C; $D = ‘Texto’; |
+ = | $A + = 4; | $A = $A + 4; |
– = | $A – = 3 * $B; | $A = $A – (3 * $B); |
* = | $A * = 2; | $A = $A * 2; |
/ = | $A / = 35 + $B; | $A = $A / (35 + $B); |
% = | $A % = $B; | $A = $A % $B; |
. = | $D . = ‘ de prueba’; | $D = $D . ‘ de prueba’; |
>> = | $A >> = 1; | $A = $A >> 1; |
<< = | $A << = $B; | $A = $A << $B; |
& = | $A & = ($C + = 3); | $C = $C +3; $A = $A & $C; |
^ = | $A ^ = 2; | $A = $A ^ 2; |
| = | $A | = $C; | $A = $A | $C; |
Otros operadores
Operador de selección
Este operador se utiliza para ejecutar una operación u otra dependiendo de la condición
El formato es el siguiente:
Condición ? Exp1 : Exp2
Si se cumple la condición se evalúa y se devuelve la expresión Exp1 si no la Exp2
Podemos poner un sólo valor
Ejemplo:
Operador new
Este operador se va a utilizar para crear una instancia de un tipo de objetos previamente definido
La sintaxis a seguir es la siguiente:
Estos parámetros son los que se le pasan al constructor de dicho objeto en cuestión
Operador clone
Este operador se va a utilizar para crear una copia de un objeto previamente definido (que invoca, si fuera posible, al método __clone() del objeto)
La sintaxis a seguir es la siguiente:
Cuando se clona un objeto, PHP llevará a cabo una copia superficial de las propiedades del objeto
Las propiedades que sean referencias a otras variables, mantendrán las referencias
Una vez que la clonación ha finalizado, se llamará al método __clone() del nuevo objeto (si el método __clone() estuviera definido), para permitirle realizar los cambios necesarios sobre sus propiedades
Operador gettype
Este operador aplicado a una variable devuelve el tipo de objeto al que pertenece el dato contenido por dicha variable
Su sintaxis es:
Los valores que puede devolver son:
-
boolean
-
integer
-
double
Por razones históricas se devuelve double también cuando sea de tipo float
-
string
-
array
-
object
-
resource
-
NULL
-
unknown type
Preferencia
La preferencia de los operadores va a determinar el orden en que se ejecuten en una expresión determinada
Usando paréntesis controlaremos que las operaciones se lleven a cabo según nosotros queramos
En PHP la preferencia de los operadores de mayor a menor es la siguiente:
Preferencia | |||||||||||||
Otros operadores | clone | new | |||||||||||
Array | [ | ] | |||||||||||
Exponenciación | ** | ||||||||||||
(in / de) crease /tipos | ++ | – – | ^ | (int) | (float) | (string) | (array) | (object) | (bool) | @ | |||
Otros operadores | gettype | ||||||||||||
Negación | ! | ||||||||||||
Mul / Div / Resto | * | / | % | ||||||||||
Suma / Resta | + | – | |||||||||||
Propagación | << | >> | |||||||||||
Relacionales | < | < = | > | > = | |||||||||
Igualdad | = = | != | = = = | ! = = | < > | < = > | |||||||
AND bit a bit | & | ||||||||||||
XOR bit a bit | ^ | ||||||||||||
OR bit a bit | | | ||||||||||||
AND lógica | && | ||||||||||||
OR lógica | | | | ||||||||||||
Igualdad | ? ? | ||||||||||||
Otros operadores | ?: | ||||||||||||
Asignación | = | + = | – = | * = | * * = | / = | . = | % = | & = | | = | ^ = | >> = | << = |
AND lógica | AND | ||||||||||||
XOR lógica | XOR | ||||||||||||
OR lógica | OR |