|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
IF - ELSEIF - ELSE AVEC L'OPÉRATEUR TERNAIRE
Information sur la source
Description
Alors voila, moi qui aime bien l'opérateur ternaire pour sa simplicité, je me suis demandé comment on pouvait utiliser cet opérateur avec l'option elseif. Et bien voila :
Source
- <?php
- // Imaginons que votre code est de ce type :
- $var = 1;
- $var2 = 0;
- if ( $var === 0 ) {
- $truc = true;
- } elseif ( $var2 === 0 ) {
- $truc = true;
- } else {
- $truc = false;
- }
- // 6 lignes à écrire pour si peu ? Voici la version compactée :
-
- $var = 1;
- $var2 = 0;
- $truc = ( $var === 0 ) ? true : ( $var2 === 0 ) ? true : false;
-
- // Et oui, en une ligne, j'utilise 2 fois l'opérateur ternaire pour faire comme un if-elseif-else.
- ?>
- <?php
- // ***************** Nouvel exemple un peu plus concret ! *******************
- // Imaginons que vous souhaitez utiliser votre propre mode de session.
- // Pour rappel, l'utilisation d'une session oblige à avoir un id de session pour pouvoir s'y retrouver.
- // Cet id, soit on le fait passer par un cookie, soit par l'URL (jusqu'ici, rien de très compliqué )
- // Ici, l'id sera stocké soit stocké dans un cookie ( $_COOKIE['session_id'] ), ou par passage dans l'url :
- // xxx.php?sid=xopiasj53sdf2483sd453s5
-
- $sid = ( isset($_COOKIE['session_id']) ) ? $_COOKIE['session_id'] : ( isset($_GET['sid']) ) ? $_GET['sid'] : NULL;
-
- ?>
- Après, il faut faire d'autres test pour valider l'id de session, mais ca je m'en fou, ce que je veux présenter, c'est l'emploi du double opérateur ternaire à la place d'un if/elseif/else.
- Voila, l'exemple est un peu plus présentable je trouve.
- Je redonne quand même le même exemple du dessus avec le vieux if/elseif/else :
- <?php
- if ( isset($_COOKIE['session_id']) ) {
- $sid = $_COOKIE['session_id'];
- } elseid ( isset($_GET['sid'] ) {
- $sid = $_COOKIE['session_id'];
- } else {
- $sid = NULL;
- }
- ?>
- Enfin, moi perso, je trouve rebarbatif d'utiliser if/elseif/else pour changer qu'une seule variable. Je trouve l'opérateur ternaire beaucoup plus efficace pour ca.
- Si par contre, il y a d'autres chose à exécuter, l'opérateur ternaire n'est plus à utiliser !
- Il faut savoir l'utiliser au moment opportun !
-
- <?php
- // Dernier exemple :
- if( isset($_SERVER['HTTP_X_FORWARDED_FOR']) ) {
- $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
- } elseif ( isset($_SERVER['HTTP_CLIENT_IP']) ) {
- $ip = $_SERVER['HTTP_CLIENT_IP'];
- } else {
- $ip = $_SERVER['REMOTE_ADDR'];
- }
-
- // Ou alors :
- $ip = ( isset($_SERVER['HTTP_X_FORWARDED_FOR']) ) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : ( isset($_SERVER['HTTP_CLIENT_IP']) ) ? $_SERVER['HTTP_CLIENT_IP'] : $_SERVER['REMOTE_ADDR'];
- ?>
<?php
// Imaginons que votre code est de ce type :
$var = 1;
$var2 = 0;
if ( $var === 0 ) {
$truc = true;
} elseif ( $var2 === 0 ) {
$truc = true;
} else {
$truc = false;
}
// 6 lignes à écrire pour si peu ? Voici la version compactée :
$var = 1;
$var2 = 0;
$truc = ( $var === 0 ) ? true : ( $var2 === 0 ) ? true : false;
// Et oui, en une ligne, j'utilise 2 fois l'opérateur ternaire pour faire comme un if-elseif-else.
?>
<?php
// ***************** Nouvel exemple un peu plus concret ! *******************
// Imaginons que vous souhaitez utiliser votre propre mode de session.
// Pour rappel, l'utilisation d'une session oblige à avoir un id de session pour pouvoir s'y retrouver.
// Cet id, soit on le fait passer par un cookie, soit par l'URL (jusqu'ici, rien de très compliqué )
// Ici, l'id sera stocké soit stocké dans un cookie ( $_COOKIE['session_id'] ), ou par passage dans l'url :
// xxx.php?sid=xopiasj53sdf2483sd453s5
$sid = ( isset($_COOKIE['session_id']) ) ? $_COOKIE['session_id'] : ( isset($_GET['sid']) ) ? $_GET['sid'] : NULL;
?>
Après, il faut faire d'autres test pour valider l'id de session, mais ca je m'en fou, ce que je veux présenter, c'est l'emploi du double opérateur ternaire à la place d'un if/elseif/else.
Voila, l'exemple est un peu plus présentable je trouve.
Je redonne quand même le même exemple du dessus avec le vieux if/elseif/else :
<?php
if ( isset($_COOKIE['session_id']) ) {
$sid = $_COOKIE['session_id'];
} elseid ( isset($_GET['sid'] ) {
$sid = $_COOKIE['session_id'];
} else {
$sid = NULL;
}
?>
Enfin, moi perso, je trouve rebarbatif d'utiliser if/elseif/else pour changer qu'une seule variable. Je trouve l'opérateur ternaire beaucoup plus efficace pour ca.
Si par contre, il y a d'autres chose à exécuter, l'opérateur ternaire n'est plus à utiliser !
Il faut savoir l'utiliser au moment opportun !
<?php
// Dernier exemple :
if( isset($_SERVER['HTTP_X_FORWARDED_FOR']) ) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} elseif ( isset($_SERVER['HTTP_CLIENT_IP']) ) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
// Ou alors :
$ip = ( isset($_SERVER['HTTP_X_FORWARDED_FOR']) ) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : ( isset($_SERVER['HTTP_CLIENT_IP']) ) ? $_SERVER['HTTP_CLIENT_IP'] : $_SERVER['REMOTE_ADDR'];
?>
Conclusion
Cependant, niveau temps d'exécution, je sais que ca risque d'alourdir un peu la charge. De combien, je n'en sais rien. Vous pouvez rajouter autant d'opérateur ternaire que de elseif à rajouter si jamais y'en a plus d'un ! Voila :) Ps: je met ca en tant que Débutant, car c'est plus de la logique qu'autre chose. Même si l'opérateur ternaire est très rebutant au début (connaissance de cause :))
Historique
- 25 octobre 2005 01:02:42 :
- J'ai oublié les balises php :p
- 25 octobre 2005 11:58:17 :
- Correction et ajout d'un nouvel exemple un peu plus concret.
- 25 octobre 2005 14:56:39 :
- Rajout d'un autre exemple basé sur l'adresse ip !
Sources du même auteur
Sources de la même categorie
Sources en rapport avec celle ci
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Pb rajout saut de page [ par Falcon074 ]
Bonjour, Je cherche un moyen de rajouter un saut de page à la fin de tous les 6 enr
requete pour recherche multicritere [ par phpnuke ]
if (empty($_POST['province'])){$AOP = "OR";}else{$AOP = "AND";}if (empty($_POST['categorie'])){$AOC = "OR";}else{$AOC = "AND";}if (empty($_POST['ville
Affichage dans textarea [ par Falcon074 ]
Bonjour, Je suis nouveau et j'ai besoin d'aide !!! En effet j'aimerai à aprtir d'un formulaire (méthode POST) écrire mes données récupéré et mémorise
Changement de valeur d'une variable avant un envoi de mail [ par chris tuckers ]
Bien le bonjour amis CSistes !!Mon probleme d'aujourd'hui, j'ai décidé de le mettre dans la rubrique débutant car à mon avis, vous allez pouvoir le ré
Problème avec les cases à cocher [ par SamiEniso ]
j'ai fait un tableau avec des cases à cocher dans un formulaire. lorsque ce formulaire est envoyé à la page de traitement suivante, les cases non coch
condition if et else [ par gigawatt ]
BonjourQuelqu'un peut il apporter sa contribution à ma requête:En fait j'explique: certains clients de ma base foxpro ont plusieurs contrats de mainte
selection option avec if et else et else if [ par gigawatt ]
BonjourQuelqu'un peut il apporter sa contribution à ma requête:En fait j'explique: certains clients de ma base foxpro ont plusieurs contrats de mainte
condition if et else [ par gigawatt ]
Bonjour Je suis obligé de passer ce message en textbox Je n'arrive pas à utiliser les conditions if et else avec une option sélect J'explique j'ai qu
transfert d'une image par formulaire vers une base de données [ par stageman ]
Bonjour,je developpe la partie admin de mon site et j'ai réalisé un formulaire qui transfert les données rentrées dans celui-ci vers ma base de donnée
Insertion dans base de données MYSQL IMPOSSIBLE! [ par MuS3 ]
Bonjour,Je fais un projet pour mon bac et c'est un formulaire, je dispose de deux fichiers, un inscription.html et un inscription .php.Le problème est
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version

HTC G1
Entre 449€ et 449€
|