Els condicionals serveixen per avaluar una condició i després poder executar unes instruccions o unes altres depenent de si la condició és compleix o no. Anem a posar un exemple en pseudocodi:
edat = 19
si edat >= 18 llavors
sóc major de d'edat
sinó
sóc menor
En aquest cas, si l'edat és major o igual que 18 s'executaria l'acció sóc major d'edat i en cas contrari s'executaria només sóc menor. I com es fa en programació php? Anem a veure el mateix exemple:
<?php
$edat = 19;
if ( $edat >= 18 ) {
echo "Sóc major d'edat";
} else {
echo "Sóc menor";
}
?>
Per avaluar una condició ho fem amb if, entre parèntesi posem la condició i després entre les claus el que s'executarà si es compleix la condició. Després el else (que és el sinó) es pot posar o no, en aquest cas és recomanable perquè volem mostrar una cosa o una altra. Si ho executes veuràs que diu que eres major d'edat i si canvies l'edat et dirà que eres menor.
També, dins del else es podrien seguir posant condicions, per exemple:
si numero < 5 llavors
estic suspés
sino
si numero < 8 llavors
he tret un notable
sino
he tret un excel·lent
El cas anterior té un condicional primer i després com fa falta tornar a comprovar es tornaria a afegir un if i else dins del primer else. En codi quedaria així:
<?php
$nota = 9;
if ( $nota < 5 ) {
echo "Estic suspés";
} else {
if ( $nota < 8 ) {
echo "He tret un notable";
} else {
echo "He tret un excel·lent";
}
}
?>
Per escriure les condicions podem comparar diferents variables. Els comparadors més importants són:
== (igual)
!= (diferent)
> (major)
< (menor)
>= (major o igual)
<= (menor o igual)
Els operadors lògics ens permeten comparar diferents condicions a la vegada. Els operadors lògics són els següents:
&& (i --> s'han de complir totes condicions)
|| (o --> s'ha de complir una de les condicions)
! (negació --> es nega la condició)
Els operadors lògics ens permeten comparar diferents condicions a la vegada. Per exemple, imagina que tenim un formulari que rep el nom i un codi. Volem que si el nom és 'Vicent' i el codi és '1234' es puga entrar al sistema, sinó no. Mira el següent codi:
<?php
$nom = 'Vicent';
$codi = '1233';
if($nom == 'Vicent' && $codi == '1234') { //si nom és Vicent i codi és 1234
echo '<p>Pots entrar</p>';
} else {
echo '<p>No pots entrar</p>';
}
?>
Fes un programa que mostre per pantalla si dos textos $paraula1 i $paraula2 són iguals, pots utilitzar les funcions strcmp o strcasecmp. Recorda que aquestes funcions retornaven 0 (si eren iguals) o 1 (si eren diferents).
Fes un programa que mostre per pantalla si un número $numero està entre 0 i 25, entre 26 i 50, entre 51 i 75 o si és major que 75.
Crea un formulari d'inici de sessió que valide si l'usuari és Vicent (o el teu nom) i el codi 1234.
Per fer-ho has de tindre en compte alguns detalls:
Crea un formulari amb el mètode post: <form method="post"></form>
Un títol h1
Un paràgraf amb Nom
Un input de tipus text amb l'atribut name i valor "nom"
Un paràgraf amb Codi
Un input de tipus password amb l'atribut name i valor "codi"
Un input de tipus submit amb l'atribut name i valor "enviar" i l'atribut value i valor "Enviar" (l'atribut name ens serveix com al nom distintiu de l'etiqueta i l'atribut value és el text que mostrarà el botó)
També, hauràs de crear un codi php que s'encarregue de saber quan es polsa el botó Enviar:
<?php
if(isset($_POST["enviar"])) { //s'executaran les linies de dins quan es prema el botó Enviar
$nom = $_POST["nom"]; //agafar el valor del input que s'anomena "nom"
...
}
?>