Operadores en PHP

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)

  • 0 cuando son iguales
  • -1 cuando el primer operador es menor que el segundo
  • 1 cuando el primer operador es mayor que el segundo
? ?

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