Bonjour,
j'ai mis un switch dans mon code.
$ordre = $_GET'ordre'];
switch ($ordre):
case 0:
$ordre = "id_facture";
break;
case 1:
$ordre = "numero_facture";
break;
case 2:
$ordre = "date_crea";
break;
case 3:
$ordre = "nom_client";
break;
case 4:
$ordre = "montant_ttc";
break;
default:
$ordre = "id_facture";
endswitch;
Mais si la variable $ordre est vide, bin j'ai une erreur de variable inconnue!
Donc, j'ai entouré le code précédent avec:
if(isset($_GET'ordre'])) {
et
} else {
$ordre = "id_facture";
}
Bon, tout ceci fonctionne mais je ne comprend pas pourquoi les lignes:
default:
$ordre = "id_facture";
... ne sont pas prises en compte si la variable "ordre" est vide? Pourquoi dois-je ajouter un isset?
Merci de m'éclairer.
Hexa
Bonjour, d'après la doc switch utilise une comparaison large (==) http://php.net/manual/fr/control-structures.switch.php.
Du coup il n'est pas capable de gérer le cas où ta variable est nulle.
Default ne fonctionne que pour les valeurs différentes de celles de tes case( ex : $ordre =5)
Bin si, il y est! C'est bien ce qui m'étonne....
Mais le "default" n'est-il pas là au cas où la variable est vide? Sinon, à quoi sert ce default?
J'ai mis la réponse au dessus de ton commentaire. On a du répondre en même temps, tu n'as peut être pas vu.
Ha oui, exact! Effectivement, on a répondu en même temps.
Merci pour ta réponse, maintenant je vois comment faire.