Accueil > > > IF - ELSEIF - ELSE AVEC L'OPÉRATEUR TERNAIRE
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
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
instruction if..elseif...else [ par andlauer ]
j'ai un problème avec l'instruction if..elseif...else. Il ne reconnait simplement pas le elseif. Par exemple, dans cette instruction : if ($act == 'T
Tableau dans php [ par shadow578 ]
Bonjour, Alors j'ai un petit script qui me permet de lister les fichiers présents dans le dossier, jusqu'à la tout va bien, mais j'aimerai les cla
affichage de la mention [ par rudybiss ]
Bonjour!Je développe une application sur la gestion des notes en php.Tout marche bien à l'exception de l'affichage de la mention.En fait,il n'arrive p
arborescence tree php [ par lina22 ]
bonjour, en faite lors de l'affichage de l'arborescence je vx pas afficher l'extension est ce que qlq un peut m'aider svp merci exp nom.php je veux af
echiquier [ par jackinfor ]
Bonjour,J'essaye pour le moment de faire un échiquier, mais comme je suis un débutant bah je bloque :)Voila mon code pour le momentMerci de m'aider<
if_else [ par menyarito ]
Bonjour, le bloc affiche uniquement le 1er résultat [u]'disponibles'[/u] quelque soit la condition true or false.j'ai beaucoup essayer avec mais... [
caratere indésirable qui s'ajoute automatiquement [ par Moritus ]
bonjour, J'ai un problème que j'arrive pas à réglé. Voila quand j'affiche ma page, j'ai le caractere '1' qui apparait mais je n'arrive pas a voir de
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
|
Derniers Blogs
[RIA SERVICES] INCLUDE ET DOMAINDATASOURCE[RIA SERVICES] INCLUDE ET DOMAINDATASOURCE par Audrey
Dans un de mes articles précédents , j'avais parlé des DomainDataSource avec RIA Services dans le cas d'une interface Maître - Détail. Dans le même principe, je vais parler d'une autre manière de mettre en forme ce cas d'interface avec RIA Services. Et po...
Cliquez pour lire la suite de l'article par Audrey ZUNE : VERSION ZUNE SOFTWARE V 4.2 ET LA SOCIALISATIONZUNE : VERSION ZUNE SOFTWARE V 4.2 ET LA SOCIALISATION par ROMELARD Fabrice
Une des nouveautés de la version V 3.0 était l'apparition de l'onglet Social qui ne fonctionnait que si le MarketPlace était activé sur son poste. Cela limitait donc son intérêt, car hors du cadre commercial USA-CANADA, peu de monde trouva...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice PRATIQUE DE SILVERLIGHT PAR ERIC AMBROSIPRATIQUE DE SILVERLIGHT PAR ERIC AMBROSI par MPOWARE
Je viens de finir la lecture du dernier livre d'
Eric Ambrosi
éditions PEARSON
Son livre donne une approche pratique de Silverlight qui sera aussi bien comprise par le développeur que par le designeur.
Tous les aspects du développement RIA sont abor...
Cliquez pour lire la suite de l'article par MPOWARE APPRENDRE à DéVELOPPER POUR LES MOBILES AVEC LA NOUVELLE GéNéRATION .NETAPPRENDRE à DéVELOPPER POUR LES MOBILES AVEC LA NOUVELLE GéNéRATION .NET par odewit
2 déclinaisons de Silverlight et 2 déclinaisons de Mono permettent dorénavant (ou permettront prochainement) de développer des applications .NET mobiles pour les principales plates-formes du marché :
Silverlight pour Symbian, basé sur Silverlight 2...
Cliquez pour lire la suite de l'article par odewit ZUNE : NOUVELLE VERSION DU ZUNE SOFTWARE - V 4.2ZUNE : NOUVELLE VERSION DU ZUNE SOFTWARE - V 4.2 par ROMELARD Fabrice
Avec la dernière génération du lecteur MP3 de Microsoft, le ZUNE HD, Microsoft a publié une nouvelle version du logiciel pour PC. Ainsi, je me suis décidé à installer celle-ci sur mon Tablet PC ACER, comme toujours le logiciel est donc tél...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|