Operadores y expresiones

En programación, los operadores son símbolos especiales que realizan operaciones en variables y valores. Estas operaciones pueden incluir aritmética, comparación, lógica, asignación, entre otras. Los operadores son esenciales para manipular datos y realizar acciones específicas en un programa.

Operadores aritméticos en PHP

Suma, resta, multiplicación, división

Los operadores aritméticos en PHP permiten realizar operaciones matemáticas básicas. Aquí están algunos ejemplos:

<?php
$a = 10;
$b = 5;

$suma = $a + $b;      // Suma: 15
$resta = $a - $b;     // Resta: 5
$multiplicacion = $a * $b; // Multiplicación: 50
$division = $a / $b;   // División: 2
?>

Módulo y exponenciación

El operador de módulo (%) devuelve el resto de la división entre dos números, y el operador de exponenciación (**) realiza la operación de elevar un número a una potencia.

<?php
$c = 7;
$d = 3;

$modulo = $c % $d;     // Módulo: 1
$exponenciacion = $c ** $d; // Exponenciación: 343
?>

Operadores de incremento y decremento:

Los operadores de incremento (++) y decremento (--) son utilizados para aumentar o disminuir el valor de una variable en uno.

<?php
$numero = 5;

// Incremento
$numero++;  // Resultado: 6

// Decremento
$numero--;  // Resultado: 5 nuevamente puesto que ahora $numero contenía el valor 6
?>

Operadores de asignación en PHP

Los operadores de asignación en PHP se utilizan para asignar valores a variables. Además de la asignación básica (=), existen operadores compuestos que combinan una operación con la asignación.

<?php
$valor = 10;  // Asignación simple

$variable1 = $valor; // $variable1 toma el valor de $valor

// Operadores compuestos
$variable1 += 3;  // $variable1 = $variable1 + 3
$variable1 -= 2;  // $variable1 = $variable1 - 2
$variable1 *= 4;  // $variable1 = $variable1 * 4
$variable1 /= 3;  // $variable1 = $variable1 / 3
?>

Operadores de comparación en PHP

Igualdad y desigualdad

Los operadores de igualdad (==) y desigualdad (!=) se utilizan para comparar valores sin tener en cuenta el tipo de dato. Estos operadores devuelven true si los valores son iguales y false si son diferentes.

<?php
$x = 5;
$y = "5"; // Notar que $x es de tipo entero mientras que $y es de tipo string

// Igualdad de valor
$x == $y; // true (no se tiene en cuenta el tipo de dato, solo su valor)

// Desigualdad de valor
$x != $y; // false
?>

Identidad y no identidad

Los operadores de identidad (===) y no identidad (!==) comparan tanto el valor como el tipo de datos. Devuelven true si los valores son idénticos en valor y tipo, y false si son diferentes en valor o tipo.

<?php
$a = 5;
$b = "5";

// Identidad de valor y tipo
$a === $b; // false (puesto que son de tipo diferente)

// No identidad de valor y tipo
$a !== $b; // true
?>

Mayor que, menor que, mayor o igual, menor o igual

Estos operadores (>, <, >=, <=) comparan los valores y devuelven true o false según la relación de orden entre ellos.

<?php
$c = 10;
$d = 5;

// Mayor que
$c > $d;  // true

// Menor que
$c < $d;  // false 

// Mayor o igual que 
$c >= $d; // true

// Menor o igual que
$c <= $d; // false
?>

Operadores lógicos en PHP

AND (&&) y OR (||)

Los operadores lógicos AND (&&) y OR (||) son utilizados para combinar expresiones lógicas. AND devuelve true si ambas expresiones evaluadas son verdaderas, mientras que OR devuelve true si al menos una de las expresiones es verdadera.

<?php
$condicion1 = true;
$condicion2 = false;

// Operador AND
$resultado_and = ($condicion1 && $condicion2);   // false

// Operador OR
$resultado_or = ($condicion1 || $condicion2);    // true
?>

Operador NOT (!)

El operador NOT (!) se utiliza para negar una expresión lógica. Si la expresión es verdadera, NOT la convierte en falsa, y viceversa.

<?php
$condicion = true;

// Operador NOT
$resultado_not = !$condicion;  // false
?>

Uso de paréntesis para la lógica compleja

Los paréntesis se utilizan para agrupar expresiones lógicas y establecer el orden de evaluación. Esto es útil cuando se tienen expresiones lógicas complejas que involucran múltiples operadores.

<?php
$condicion1 = true;
$condicion2 = false;
$condicion3 = true;

// Uso de paréntesis para la lógica compleja
$resultado_complejo = ($condicion1 || ($condicion2 && $condicion3));  // true
?>

La correcta aplicación de operadores lógicos es crucial para controlar el flujo de ejecución en programas y scripts PHP, permitiendo tomar decisiones basadas en condiciones lógicas.

Operadores de cadena en PHP

Concatenación de cadenas

El operador de concatenación de cadenas (.) se utiliza para unir dos cadenas en una sola. Puedes combinar variables, texto y cualquier expresión de cadena.

<?php
$nombre = "Juan";
$apellido = "Pérez";

// Concatenación de cadenas
$nombre_completo = $nombre . " " . $apellido;  // "Juan Pérez". 
?>

Operador de asignación con concatenación

El operador .= se utiliza para concatenar el valor de la derecha con el valor de la izquierda y asignar el resultado a la variable de la izquierda.

<?php
$mensaje = "Hola, ";

// Operador de asignación con concatenación
$mensaje .= "mundo!";  // $mensaje ahora es "Hola, mundo!"
?>

Operadores de control de errores en PHP

Operador de supresión de errores

El operador @ se utiliza para suprimir los mensajes de error generados por una expresión en PHP. Al colocar @ delante de una expresión, cualquier mensaje de error que pueda generar dicha expresión será ignorado.

<?php
// Operador de supresión de errores
$resultado = @file_get_contents("archivo_inexistente.txt");
?>

Aunque aun no hemos visto funciones, en este ejemplo, si el archivo «archivo_inexistente.txt» no existe, la función file_get_contents generaría un mensaje de error. Sin embargo, el operador @ evita que el mensaje de error se muestre. Si lo deseas puedes realizar la siguiente prueba:

1. Crea un nuevo archivo llamado supresionerrores.php dentro de tu directorio curso-php e inserta el siguiente código:

<?php
// Operador de supresión de errores
$resultado = file_get_contents("archivo_inexistente.txt"); // Sin supresion de errores
?>

2. Abre la url http://localhost/curso-php/supresionerrores.php. Obtendrás un mensaje de error indicando que el archivo no existe.

3. Ahora modifica el código agregando el operador @ y guarda los cambios. Deberías tener algo así:

$resultado = @file_get_contents("archivo_inexistente.txt");

4. Vuelve a tu navegador y actualiza la página. Como podrás observar, ahora no se muestra el mensaje de error, aunque obviamente si no creaste un archivo llamado «archivo_inexistente.txt» el error sigue existiendo.

Operador ternario en PHP

El operador ternario es una forma concisa de expresar una estructura condicional en una sola línea. Por el momento solo vamos a ver su sintaxis puesto que por el momento, no hemos visto las estructuras condicionales.

$variable = (condición) ? valor_si_verdadero : valor_si_falso;

Expresiones y evaluación en PHP

En PHP, las expresiones se evalúan siguiendo reglas específicas de precedencia y asociatividad de operadores. En primer lugar se evaluarán las expresiones contenidas entre paréntesis y en segundo lugar las diferentes operaciones de mayor a menor precedencia:

  1. Mayor precedencia: ** (exponenciación)
  2. Media precedencia: *, /, % (multiplicación, división, módulo)
  3. Menor precedencia: +, – (suma, resta)
<?php
$a = 5;
$b = 3;
$c = 2;

$resultado = $a + $b * $c;  // 11
?>

En este ejemplo, la multiplicación se evalúa antes de la suma debido a la mayor precedencia del operador *, es decir, sería equivalente a $a + ($b * $c). Sin embargo, observa el siguiente código:

$resultado = ($a + $b) * $c;  // 16

En este caso, se evalúa primero la suma contenida dentro del paréntesis y posteriormente se multiplica por el valor de la variable $c.

Recuerda: las expresiones se evalúan de izquierda a derecha, y es importante prestar atención a los paréntesis puesto que pueden alterar el orden de evaluación.