Introducción al PHP (Parte 8: Los operadores)

  En esta entrada de la serie de entradas de introducción al lenguaje de guiones PHP se hablará de los operadores.
  Los operadores no son exclusivos de este lenguaje de guiones que se está tratando en la presente entrada de este blog, sino que son parte de casi cualquier lenguaje informático existente, bien sea de guiones, de programación, de marcas, o algún otro.
  Como es costumbre, se omitirán los operadores referentes a cadenas de texto y matrices, ya que se tratarán en sus respectivas partes de esta serie de entradas sobre el PHP.
 Pero antes de empezar a hablar de los operadores en profundidad, se tratará el tema de las expresiones.

   Una expresión, en el contexto de la programación PHP, es cualquier cosa que posee o produce un valor.
  Así, una expresión puede ser unha variable o una constante o puede incluir varios operandos y operadores. Una función que devuelve un valor también está dentro de lo que se define como expresión. El valor resultante de la evaluación de una expresión proporciona un valor simple de uno de los seis tipos de datos existentes (entero, coma flotante, cadena, booleano, matriz u objeto).
  La expresión más sencilla es una variable o una constante, pero también
es una expresión una comparación entre dos operandos, puesto que da como resultado un valor booleano.
  Bien, ahora que quedó claro el concepto de "expresión", se verá con detalle el del operador.
  Un operador es la parte del código que indica qué se quiere hacer con las expresiones, variables o constantes para obtener el nuevo valor. Los operadores de PHP son similares a los de C y Java. Se suelen clasificar según su función.


ARITMÉTICOS

  Los operadores de este tipo suelen servir para realizar cálculos matemáticos, y los forman los mostrados en la tabla siguiente:

Operador
Sintaxis
Descripción
Suma $a + $b Suma de dos operandos.
Resta $a - $b Resta de dos operandos.
Multiplicación $a * $b Producto de dos operandos.
División $a / $b   División de dos operandos. La división entre dos valores devuelve un valor de coma flotante, salvo si los dos operandos son enteros y divisibles. Si se quiere obtener un resultado
entero se puede utilizar la función intval().
Módulo $a % $b   Resto de una división de enteros. Si los operandos son de tipo coma flotante, se trunca la parte decimal antes del cálculo. El signo del módulo (resultado) es el signo del primer operando.
Negación -$a Operador unitario que da el opuesto.
  No obstante, en numerosas ocasiones los operadores aritméticos no son suficientes para resolver los problemas de cálculo, en estas situaciones se pueden utilizar funciones matemáticas que simplificarán el trabajo. Este tipo de funciones cubren un amplio espectro, desde el simple cálculo del mayor valor entre dos números hasta cualquier cálculo trigonométrico, y con la posibilidade de controlar el nivel de precisión.
  PHP incluye varias extensiones matemáticas, cada una con un considerable número de funciones:  BCMath, GMP, Math y Statistics.
  La sintaxis en el uso de la función sería:
$(variable) = (función)($(variable));
   La siguiente tabla muestra las funciones matemáticas más utilizadas en el PHP básico:

Función
Descripción
abs Valor absoluto.
acos Arco coseno.
acosh Arco coseno hiperbólico.
asin Arco seno.
asinh Arco seno hiperbólico.
atan2 Arco tangente de dos variables.
atan Arco tangente.
atanh Arco tangente hiperbólica.
base_convert Convertir un número entre bases arbitrarias.
bindec Binario a decimal.
ceil Redondear fracciones hacia arriba.
cos Coseno.
cosh Coseno hiperbólico.
decbin Decimal a binario.
dechex Decimal a hexadecimal.
decoct Decimal a octal.
deg2rad Convierte el número en grados a su equivalente en radianes.
exp Calcula el exponencial de "e".
expm1 Devuelve exp(numero)-1, calculado de tal forma que no pierde precisión incluso cuando el valor del número se aproxima a cero.
floor Redondear fracciones hacia abajo.
fmod Devuelve el resto en punto flotante (módulo) de la división de los argumentos.
getrandmax Mostrar el mayor valor aleatorio posible.
hexdec Hexadecimal a decimal.
hypot Calcula la longitud de la hipotenusa de un triángulo de ángulo recto.
intdiv División entera.
is_finite Busca si un valor es un número finito legal.
is_infinite Busca si un valor es infinito.
is_nan Busca si un valor no es un número.
lcg_value Generador lineal congruente combinado.
log10 Logaritmo en base 10.
log1p Devuelve log(1 + numero), calculado de tal forma que no pierde precisión incluso cuando el valor del número se aproxima a cero.
log Logaritmo natural.
max Buscar el valor más alto.
min Bucar el valor más bajo.
mt_getrandmax Mostrar el mayor valor aleatorio posible.
mt_rand Genera un número entero aleatorio mejor.
mt_srand Genera el mejor número aleatorio a partir de una semilla.
octdec Octal a decimal.
pi Obtener el valor de "pi".
pow Expresión exponencial.
rad2deg Convierte el número en radianes a su equivalente en grados.
rand Genera un número entero aleatorio.
round Redondea un número de coma flotante.
sin Seno.
sinh Seno hiperbólico.
sqrt Raíz cuadrada.
srand Genera un número aleatorio a partir de una semilla.
tan Tangente.
tanh Tangente hiperbólica.

ASIGNACIÓN

  El operador de asignación permite asignar un valor a una variable, y su operador básico es =. A primera vista se podría pensar que es el operador de comparación, pero realmente significa que el operando de la izquierda toma el valor de la expresión de la derecha.
  El valor de una expresión de asignación es el propio valor asignado (por ejemplo, el valor de “$a = 3” es 3).
  Además del operador básico de asignación, existen los “operadores combinados” para todas las operaciones aritméticas y de cadenas que sean binarias. Este operador combinado permite, de una sola vez, usar una variable en una expresión y luego establecer el valor de esa variable al resultado de la expresión.

  En la tabla siguiente se muestran los operadores combinados para operaciones aritméticas:

Operador
Sintaxis
Descripción
Suma $var1 += $var2   Suma las dos variables y el resultado se asigna en el primer operando.
Resta $var1 -= $var2   Resta las dos variables y el resultado se asigna en el primer operando.
Multiplicación $var1 *= $var2   Multiplica las dos variables y el resultado se asigna en el primer operando.
División $var1 /= $var2   Divide las dos variables y el resultado se asigna en el primer operando.
Módulo $var1 %= $var2    Módulo entre dos variables y el resultado se asigna en el primer operando.

COMPARACIÓN

  Se trata de operadores que se utilizan para realizar comparación de expresiones. Los operadores de comparación enfrentan, normalmente, dos expresiones (en su forma más simple, una expresión es una variable) y la expresión de comparación da como resultado "verdadero" o "falso".
  Existen los siguientes operadores de comparación:

Operador
Sintaxis
Descripción
Igualdad $a == $b  Comparar si el valor de los dos operandos es el mismo.
Identidad $a === $b  Compara si el valor es el mismo y, además, el tipo coincide (a partir de PHP4).
No igual $a != $b   Cierto si el valor de "$a" no es igual al de "$b".
No idéntico $a !== $b  Cierto si "$a" no es igual a "$b", o si no tienen el mismo tipo.
Menor que $a < $b  Cierto si "$a" es estrictamente menor que "$b".
Mayor que $a > $b  Cierto si "$a" es estrictamente mayor que "$b".
Menor o igual que $a <= $b  Cierto si "$a" es menor o igual que "$b".
Mayor o igual que $a >= $b  Cierto si "$a" es mayor o igual que "$b".
No igual $a <> $b  Cierto si el valor de "$a" no es igual al de "$b".
Ternario (expr1) ? (expr2) : (expr3)   Si "expr1" es verdadera, la expresión se evalúa como "expr2", en caso contrario, como "expr3".

EJECUCIÓN

  PHP soporta el operado de ejecución: la comilla invertida (`). PHP intentará ejecutar la instrucción contenida dentro de las comillas invertidas como si fuese un comando del intérprete de comandos, y su salida devuelta como el valor de esta expresión. Esta salida puede ser asignada a una variable.
  El uso de este operador es idéntico a la función shell_exec().

INCREMENTO/DECREMENTO

  Este lenguaje de guiones posee los prácticos operadores de incremento y decremento de variables al estilo del lenguaje de programación C. Existen dos operadores, ++ y --, y cada uno de ellos puede actuar antes o después de la operación de devolución de la variable.

Operador
Sintaxis
Descripción
Preincremento ++$a  Incrementa "$a" en 1, y devuelve "$a" (ya incrementado)
Postincremento $a++  Devuelve "$a" (sin incrementar), y después lo incrementa en 1.
Predecremento --$a  Decrementa "$a" en 1, y devuelve "$a" (ya decrementado).
Postdecremento $a--  Devuelve "$a" (sin decrementar), y después lo decrementa en 1.

LÓGICOS

   Los operadores lógicos se utilizan, generalmente, con expresiones que devuelven valores lógicos: verdadero o falso.
  Existen los siguientes para PHP:

Operador
Sintaxis
Descripción
Y $a and $b  Cierto si "$a" y "$b" son ciertas.
O $a or $b  Cierto si "$a" o "$b" es cierta o ambas son verdaderas.
O exclusivo $a xor $b  Cierto si "$a" o "$b" es cierta, pero no ambas.
No !$a  Cierto si "$a" es falsa.
Y $a && $b  Cierto si "$a" y "$b" son ciertas.
O $a || $b  Cierto si "$a" o "$b" es cierta o ambas son verdaderas.

  No existe una diferencia entre && y and y || y or desde el punto lógico, simplemente tienen distinto orden de precedencia. En una expresión simple, con dos variables y el operador, no hay ninguna diferencia entre && y and (o entre || y or). Pero cuando se tiene una expresión con varios operadores, el orden de precedencia es importante porque es el que indica el orden en el que se van resolviendo los elementos internos de una expresión.

BITS

 Las operaciones de bit son, básicamente, operaciones aritméticas realizadas mediante manipulación a nivel de bit. Internamente, los datos se almacénan como ceros y unos. PHP no proporciona operadores para que se pueda trabajar con los datos en su nivel más bajo, es decir, en su representación binaria. Los operandos están limitados a variables enteras.
  En el lenguaje de guiones PHP se encuentran los operadores de bits que se muestran en la siguiente tabla:

Operador
Sintaxis
Descripción
& $a & $b  Operador lógico Y: Devuelve una variable entera que tiene puestos en 1 los bits que en los dos operandos están a uno.
| $a | $b   Operador lógico O: Devuelve una variable entera que tiene puestos en 1 los bits en los que alguno de los dos operandos esté a uno.
^ $a ^ $b  Operador lógico O exclusivo: Devuelve una variable entera que tiene puestos en 1 los bits que están a uno en uno de los dos operandos pero no en los dos operandos a la vez.
~ ~$a  Operador de negación: Devuelve una variable entera que tiene en uno los bits que estaban a cero en el operando y viceversa.
<< $a << $b   Desplazamiento a la izquierda: Devuelve una variable entera desplazando "$b" posiciones a la izquierda a la variable "$a". Cada posición a la izquierda equivale a una multiplicación por 2 de la variable "$a".
>> $a >> $b  Desplazamiento a la derecha: Devuelve una variable entera desplazando "$b" posiciones a la derecha a la variable "$a". Cada posición a la izquierda equivale a una división por 2 de la variable "$a".

OMISIÓN DE ERRORES

  PHP soporta un operador de control de errores: El signo de arroba (@). Cuando se antepone a una expresión en PHP, cualquier mensaje de error que puede ser generado por esa expresión será ignorado.
  Si la propiedad "track_errors" está activada, cualquier mensaje de error generado por la expresión será guardada en la variable "$php_errormsg". Esta variable se sobreescribe en cada error, así que se debe comprobar antes si se desea utilizar. 

  El operador @ trabaja sólo sobre expresiones. Una simple regla de oro es: si se puede tomar el valor de algo, entonces se le puede anteponer el operador @. Por ejemplo, puede anteponerse a variables, a llamadas a funciones e includes, constantes y así sucesivamente.
  No puede anteponerse a definiciones de función o clase, ni a estructuras condicionales
como if y foreach, y así sucesivamente.



TIPO

  Se emplea el operador de tipo instanceof para determinar si una variable PHP es una instancia de objeto de cierta clase.

   Espero que esta entrada haya sido interesante y/o útil al lector; en caso afirmativo le agradecería que la comentase y/o la compartiese.

No hay comentarios:

Publicar un comentario

Deje aquí su comentario, si no puede comentar, pruebe a hacerlo desde otro navegador de red u otro equipo.