Operadores
Los operadores son componente esencial de cualquier lenguaje de programación. Con ellos podemos asignar, unir, cambiar o comparar valores de datos, cambiar el flujo del programa, etc.
Los operadores son símbolos que representan operaciones sobre un valor. Vamos a ver a continuación los operadores admitidos por PHP agrupados segun su utilidad.
Operador de asignación
El símbolo = permite asignar valores a variables:
<?php
$ciudad = "madrid";
$mi_numero = 123;
$var1 = var2 = 0;
?>
Operador de concatenación
Usando el símbolo del . podemos unir valores:
<?php
$nombre = "jorge";
$apellido = "pérez";
$id = $nombre." ".$apellido; // suma los dos valores mas un espacio
?>
El operador .= asigna un dato al valor anterior:
<?php
echo = "uno, dos, tres"
.= "cuatro, cinco, seis";
// imprime ”uno, dos, tres, cuatro, cinco, seis”
$id = “jorge”;
$id .=“ perez”;
// $id es ahora jorge perez
?>
Operadores aritméticos
Los simbolos + – / * permiten realizar las operaciones de suma, resta, división y multiplicación. El símbolo % permite hallar el resto de una división.
Operadores de incremento – decremento
Los símbolos ++ y – aplicados a una variable, permiten incrementar o decrecer su valor. Su efecto es distinto segun se empleen precediendo o siguiendo el nombre de la variable:
++$a Incrementa $a en uno y después devuelve $a.
$a++ Devuelve $a y después incrementa $a en uno.
--$a Decrece el valor de $a en uno y después devuelve $a.
$a-- Devuelve $a y después decrece su valor en uno.
Operadores de Comparación
$a == $b (igualdad). Cierto si $a es igual a $b.
$a === $b (identidad). Cierto si $a es igual a $b y si son del mismo tipo (sólo PHP4)
$a != $b (desigualdad). Cierto si $a no es igual a $b.
$a < $b (menor que). Cierto si $a es estrictamente menor que $b.
$a > $b (mayor que). Cierto si $a es estrictamente mayor que $b. $a <= $b (menor o igual que). Cierto si $a es menor o igual que $b.
$a >= $b (mayor o igual que). Cierto si $a es mayor o igual que $b.
- Por defecto todos los valores que introduzcas serán considerados strings (cadenas de carácteres) aunque esten formados solo por números. Si deseas forzar que el valor se compare como un integer (número entero), introduce el número (no letras!) y marca el checkbox junto a ese campo.
- NOTAS: el operador = no compara sino que ASIGNA un valor a una variable: $password="miclave" no compara si la variable password tiene el valor miclave sino que le asigna ese contenido.
- el operador == compara dos valores y devuelve TRUE si son iguales: $password=="miclave" se cumple si el valor de $password es miclave.
- El operador === da TRUE si los dos valores son además de iguales, idénticos. Se compara no solo el contenido, sino el tipo de variable: 123 == 123: TRUE (si son dos valores numericos). “123″ === 123: FALSE (mismo valor, pero el primero es una cadena, el segundo un número).
Si deseas probar === introduce dos numeros iguales en el formulario. Para que se vea la diferencia marca el checkbox de uno de los campos para que pase el valor como integer.
Operador de ejecución
PHP soporta un operador de ejecución: el apóstrofe invertido (“). PHP intentará ejecutar la instrucción contenida dentro de los apóstrofes invertidos como si fuera un comando del shell; y su salida devuelta como el valor de esta expresión (i.e., no tiene por qué ser simplemente volcada como salida; puede asignarse a una variable).
Ejemplo:
<?php
$output = `dir c:`;
echo "<pre>$output</pre>";
?>
Es equivalente a la función shell_exec y por defecto está inhabilitado su uso si php esta configurado para ejecutarse en safe_mode
Operadores Lógicos
$a and $b Y: Cierto si tanto $a como $b son ciertos.
$a or $b O: Cierto si $a o $b son ciertos.
$a xor $b O exclusiva: Cierto si $a es cierto o $b es cierto, pero no ambos a la vez.
! $a Negación: Cierto si $a no es cierto.
$a && $b Y: Cierto si tanto $a como $b son ciertos.
$a || $b O: Cierto si $a o $b son ciertos.
La razón de las dos variaciones de “y” y “o” es que operan con distinta precedencia
Operadores a nivel de bit
Los operadores bit a bit te permiten activar o desactivar bits individuales de un entero.
$a & $b Y Se activan los bits que están activos tanto en $a como $b.
$a | $b O Se activan los bits que están activos en $a o que lo están en $b.
$a ^ $b Xor (“o exclusiva”) Se activan los bits que están activos en $a o en $b pero no en ambos a la vez.
~ $a No Se activan los bits que no están activos en $a.
$a << $b Desplazamiento a la izquierda Desplaza los bits de $a, $b posiciones hacia la izquierda (por aritmética binaria, cada posición desplazada equivale a multiplicar por dos el valor de $a)
$a >> $b Desplazamiento a la derecha Desplaza los bits de $a, $b posiciones hacia la derecha (por aritmética binaria, cada posición desplazada equivale a dividir entre dos el valor de $a)
Ejemplo:
<?php
function hexColor($color) {
return dechex(($color[0]<<16)|($color[1]<<8)|$color[2]);
}
$col[0] = 25;
$col[1] = 255;
$col[2] = 55;
print hexColor($col);
?>


