Fundamentos

Operadores en PHP

Objetivos de Aprendizaje
  • Identificar los diferentes tipos de operadores en PHP.
  • Aplicar operadores para realizar cálculos, comparaciones y operaciones lógicas.

1. Operadores Aritméticos

Se utilizan para realizar operaciones matemáticas básicas.

aritmeticos.php

<?php
$a = 10;
$b = 3;
echo "Suma: " . ($a + $b) . "<br>";
echo "Resta: " . ($a - $b) . "<br>";
echo "Multiplicación: " . ($a * $b) . "<br>";
echo "División: " . ($a / $b) . "<br>";
echo "Módulo: " . ($a % $b) . "<br>";
echo "Potencia: " . ($a ** $b) . "<br>";
?>
                                    

Resultado:

Suma: 13
Resta: 7
Multiplicación: 30
División: 3.3333333333333
Módulo: 1
Potencia: 1000

2. Operadores de Asignación

Se usan para asignar valores a variables.

Operador Ejemplo Equivalente a
= $x = 5 $x = 5
+= $x += 3 $x = $x + 3
-= $x -= 3 $x = $x - 3
*= $x *= 3 $x = $x * 3
/= $x /= 3 $x = $x / 3
%= $x %= 3 $x = $x % 3
asignacion.php

<?php
$x = 5;
$x += 3;
echo "Valor final de x: $x"; // Resultado: 8
?>
                                    

Resultado:

Valor final de x: 8

3. Operadores de Comparación

Comparan dos valores y devuelven verdadero o falso.

Operador Nombre Ejemplo Resultado
== Igual $a == $b TRUE si $a es igual a $b
=== Idéntico $a === $b TRUE si $a es igual a $b, y son del mismo tipo
!= Diferente $a != $b TRUE si $a no es igual a $b
!== No idéntico $a !== $b TRUE si $a no es igual a $b o no son del mismo tipo
> Mayor que $a > $b TRUE si $a es mayor que $b
< Menor que $a < $b TRUE si $a es menor que $b
comparacion.php

<?php
$a = 10;
$b = 20;
echo ($a == $b ? "Iguales" : "Diferentes"); // Diferentes
?>
                                    

4. Operadores de Incremento/Decremento

Se utilizan para incrementar o decrementar el valor de una variable.

Operador Descripción
++$x Pre-incremento: Incrementa $x en uno, luego devuelve $x
$x++ Post-incremento: Devuelve $x, luego incrementa $x en uno
--$x Pre-decremento: Decrementa $x en uno, luego devuelve $x
$x-- Post-decremento: Devuelve $x, luego decrementa $x en uno
ejemplo_incremento.php

<?php
$x = 5;

// Pre-incremento
echo ++$x; // 6

// Post-incremento
echo $x++; // 6

// Pre-decremento
echo --$x; // 6

// Post-decremento
echo $x--; // 6
?>
                                    

5. Operadores Lógicos

Se utilizan para combinar declaraciones condicionales.

Operador Nombre Ejemplo
and Y lógico ($x and $y)
or O lógico ($x or $y)
xor O exclusivo ($x xor $y)
! No lógico !$x
&& Y lógico ($x && $y)
|| O lógico ($x || $y)
ejemplo_logicos.php

<?php
$x = true;
$y = false;

// Operador AND
var_dump($x and $y); // false

// Operador OR
var_dump($x or $y); // true

// Operador XOR
var_dump($x xor $y); // true

// Operador NOT
var_dump(!$x); // false
?>
                                    

6. Operadores de Cadena

Se utilizan para concatenar cadenas de texto.

Operador Descripción Ejemplo
. Concatenación $txt1 . $txt2
.= Concatenación y asignación $txt1 .= $txt2
ejemplo_cadena.php

<?php
$txt1 = "Hola";
$txt2 = " Mundo";

// Concatenación
echo $txt1 . $txt2; // Hola Mundo

// Concatenación y asignación
$txt1 .= $txt2;
echo $txt1; // Hola Mundo
?>
                                    

7. Operadores de Matriz

Se utilizan para comparar y manipular matrices.

Operador Descripción Ejemplo
+ Unión $x + $y
== Igualdad $x == $y
=== Identidad $x === $y
!= Diferente $x != $y
!== No idéntico $x !== $y
ejemplo_matriz.php

<?php
$x = ["a" => 1, "b" => 2];
$y = ["c" => 3, "d" => 4];

// Unión
$z = $x + $y;
print_r($z); // ["a" => 1, "b" => 2, "c" => 3, "d" => 4]
?>
                                    

8. Operadores de Asignación Condicional

Se utilizan para asignar valores basados en una condición.

Operador Descripción Ejemplo
?: Operador ternario $x = ($a > $b) ? $a : $b
?? Fusión de null $x = $a ?? $b
ejemplo_asignacion_condicional.php

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

// Operador ternario
$x = ($a > $b) ? $a : $b;
echo $x; // 20

// Fusión de null
$y = null;
$z = $y ?? "Valor por defecto";
echo $z; // Valor por defecto
?>
                                    

Ejercicio Práctico: Calculadora con Operadores

Completa este ejercicio para poner en práctica lo aprendido sobre operadores en PHP. Intenta resolver cada paso antes de revisar la solución.

Instrucciones:

Vamos a crear una mini-calculadora que utilice diferentes tipos de operadores. La calculadora debe:

  1. Recibir dos números
  2. Realizar operaciones aritméticas básicas
  3. Mostrar resultados de comparaciones
  4. Utilizar operadores lógicos
Código Base:
calculadora.php

<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <title>Mini Calculadora PHP</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
    <div class="container mt-5">
        <h2>Mini Calculadora PHP</h2>
        
        <form method="post" action="" class="mb-4">
            <div class="row mb-3">
                <div class="col-md-5">
                    <input type="number" name="num1" class="form-control" placeholder="Primer número" 
                           value="<?php echo isset($_POST['num1']) ? $_POST['num1'] : ''; ?>" required>
                </div>
                <div class="col-md-2 text-center">
                    <select name="operacion" class="form-select">
                        <option value="suma">+</option>
                        <option value="resta">-</option>
                        <option value="multiplicacion">×</option>
                        <option value="division">÷</option>
                        <option value="modulo">%</option>
                        <option value="comparacion">==</option>
                    </select>
                </div>
                <div class="col-md-5">
                    <input type="number" name="num2" class="form-control" placeholder="Segundo número" 
                           value="<?php echo isset($_POST['num2']) ? $_POST['num2'] : ''; ?>" required>
                </div>
            </div>
            <div class="d-grid">
                <button type="submit" class="btn btn-primary">Calcular</button>
            </div>
        </form>
        
        <div class="card">
            <div class="card-header">Resultado</div>
            <div class="card-body">
                <?php
                if ($_SERVER["REQUEST_METHOD"] == "POST") {
                    // Obtener valores
                    $num1 = $_POST['num1'];
                    $num2 = $_POST['num2'];
                    $operacion = $_POST['operacion'];
                    
                    // Realizar cálculos según la operación seleccionada
                    switch($operacion) {
                        case 'suma':
                            $resultado = $num1 + $num2;
                            echo "Suma: $num1 + $num2 = $resultado";
                            break;
                        
                        case 'resta':
                            // Tu código aquí
                            $resultado = $num1 - $num2;
                            echo "Resta: $num1 - $num2 = $resultado";
                            break;
                            
                        case 'multiplicacion':
                            // Tu código aquí
                            $resultado = $num1 * $num2;
                            echo "Multiplicación: $num1 × $num2 = $resultado";
                            break;
                            
                        case 'division':
                            // Tu código aquí (¡recuerda verificar división por cero!)
                            if ($num2 != 0) {
                                $resultado = $num1 / $num2;
                                echo "División: $num1 ÷ $num2 = $resultado";
                            } else {
                                echo "<div class='alert alert-danger'>Error: No se puede dividir por cero</div>";
                            }
                            break;
                            
                        case 'modulo':
                            // Tu código aquí
                            if ($num2 != 0) {
                                $resultado = $num1 % $num2;
                                echo "Módulo: $num1 % $num2 = $resultado";
                            } else {
                                echo "<div class='alert alert-danger'>Error: No se puede calcular módulo con cero</div>";
                            }
                            break;
                            
                        case 'comparacion':
                            // Tu código aquí - Muestra resultados de comparación con == y ===
                            echo "<h5>Resultados de comparación:</h5>";
                            echo "<ul>";
                            echo "<li>$num1 == $num2: " . ($num1 == $num2 ? "Verdadero" : "Falso") . "</li>";
                            echo "<li>$num1 === $num2: " . ($num1 === $num2 ? "Verdadero" : "Falso") . "</li>";
                            echo "<li>$num1 != $num2: " . ($num1 != $num2 ? "Verdadero" : "Falso") . "</li>";
                            echo "<li>$num1 > $num2: " . ($num1 > $num2 ? "Verdadero" : "Falso") . "</li>";
                            echo "<li>$num1 < $num2: " . ($num1 < $num2 ? "Verdadero" : "Falso") . "</li>";
                            echo "</ul>";
                            break;
                    }
                    
                    // Sección adicional - Operadores Lógicos
                    echo "<hr>";
                    echo "<h5>Evaluación con operadores lógicos:</h5>";
                    $esPar1 = ($num1 % 2 == 0);
                    $esPar2 = ($num2 % 2 == 0);
                    
                    echo "<ul>";
                    echo "<li>¿$num1 es par? " . ($esPar1 ? "Sí" : "No") . "</li>";
                    echo "<li>¿$num2 es par? " . ($esPar2 ? "Sí" : "No") . "</li>";
                    echo "<li>¿Ambos números son pares? " . ($esPar1 && $esPar2 ? "Sí" : "No") . "</li>";
                    echo "<li>¿Al menos uno es par? " . ($esPar1 || $esPar2 ? "Sí" : "No") . "</li>";
                    echo "</ul>";
                }
                ?>
            </div>
        </div>
        
        <div class="alert alert-warning mt-4">
            <strong>Nota:</strong> Esta calculadora es un ejemplo educativo. Para probar este código, necesitas un servidor con PHP habilitado.
        </div>
    </div>
</body>
</html>
                                        

La solución ya está completa en el código proporcionado, pero vamos a explicar las partes clave:

1. Operadores Aritméticos:

Se utilizan en los casos 'suma', 'resta', 'multiplicacion', 'division' y 'modulo' para realizar cálculos básicos entre los dos números.

2. Operadores de Comparación:

Se utilizan en el caso 'comparacion' para comparar los dos números usando operadores como ==, ===, !=, >, <.

3. Operadores Lógicos:

Se utilizan en la sección adicional para evaluar si los números son pares y aplicar los operadores && (AND) y || (OR).

4. Operadores de Asignación:

Se utilizan en todo el código para asignar valores a variables como $resultado = $num1 + $num2.

Desafío adicional: ¿Podrías expandir la calculadora para incluir operadores de incremento/decremento o el operador ternario?

Intenta expandir la calculadora con las siguientes funcionalidades:

  1. Agrega una opción para usar el operador exponencial ** (disponible en PHP 5.6+)
  2. Implementa una función que verifique si el resultado de la operación es un número primo usando operadores lógicos
  3. Agrega una opción para concatenar los dos números como strings y mostrar el resultado
  4. Usa el operador ternario para mostrar si el resultado es positivo o negativo

Estas mejoras te ayudarán a practicar y profundizar en el uso de los diferentes tipos de operadores en PHP.