Ves al contingut principal

Condicionals

Comparadors

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

var_dump($a == $b);  // false (igualtat)
var_dump($a != $b);  // true  (diferent)
var_dump($a < $b);   // true
var_dump($a >= $b);  // false

// Comparador estricte === o !==
$a = 5;       // enter
$b = "5";     // cadena

var_dump($a == $b);   // true  → només compara el valor (5 == "5")
var_dump($a === $b);  // false → compara valor i tipus (enter ≠ cadena)

$c = 10;
$d = 10;

var_dump($c === $d);  // true → mateix valor i mateix tipus

Operador Significat Exemple ($a = 5; $b = "5";)
== Igualtat de valor true (5 és igual a "5")
!= Diferent (per valor) false
<, > Menor / Major Depèn dels valors
>=, <= Major/menor o igual Depèn dels valors
=== Igualtat estricta (valor + tipus) false
!== Diferent estricta (valor o tipus) true

Condicionals

Els condicionals en PHP són instruccions que permeten executar diferents blocs de codi segons si es compleix una condició (true o false)

if

<?php
  
$edat = 18;

if ($edat >= 18) {
    echo "Ets major d’edat.";
}

if...else

<?php
$login_correcte = false;

if ($login_correcte) {
    echo "Benvingut!";
} else {
    echo "Error: usuari o contrasenya incorrectes.";
}

if...elseif...else

<?php
$nota = 7;

if ($nota >= 9) {
    echo "Excel·lent";
} elseif ($nota >= 5) {
    echo "Aprovat";
} else {
    echo "Suspès";
}

switch

Alternativa a tenir molts if...elseif. Permet comparar una variable amb diferents casos

<?php
$dia = "dilluns";

switch ($dia) {
    case "dilluns":
        echo "Comença la setmana!";
        break;
    case "dissabte":
    case "diumenge":
        echo "És cap de setmana!";
        break;
    default:
        echo "Un altre dia qualsevol.";
}

Important: Cal el break per evitar que continuï executant els següents casos

Operador ternari (?:)

És la forma abreujada de tenir un if...else

<?php
$edat = 20;
$resultat = ($edat >= 18) ? "Major d’edat" : "Menor d’edat";
/*
if ($edat>=18) 
  $resultat="Major d'edat";
else 
  $resultat="Menor d'edat";
*/
echo $resultat;

Operador null coalescing (??)

Aquest operador verifica si una variable està definida i no és null. Sinó, dona un valor per defecte.

<?php
$usuari = $_GET['usuari'] ?? "Anònim";
echo "Hola, $usuari!";

/*************************************************
  Comprovar si la variable existeix i no és null
  - Si a l’URL tenim ?usuari=Maria, mostrarà “Hola, Maria!”.
  - Si no hi ha cap usuari, mostrarà “Hola, Anònim!”.
***************************************************/

if (isset($_GET['usuari']) && $_GET['usuari'] !== null) {
    $usuari = $_GET['usuari'];
} else {
    $usuari = "Anònim";
}
echo "Hola, $usuari!";

match (PHP 8+)

Simillar a switch, però més net i amb retorn de valors directament

<?php
$nota = 8;

$resultat = match (true) {
    $nota >= 9 => "Excel·lent",
    $nota >= 5 => "Aprovat",
    default => "Suspès",
};

echo $resultat;