Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1453 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Signification d'une ligne de code en PHP

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Signification d'une ligne de code en PHP

n°1314112
chrif
Posté le 27-02-2006 à 10:48:15  profilanswer
 

Bonjour
 
je voudrais savoir si quelqu'un peut m'expliquer ce que fait cette ligne de code:
<?php echo((isset($idr) && $idr == $code_clients[$i])?" selected=\"selected\"":null); ?>
 
et celle là aussi: $idr = isset($_POST['Nom'])?$_POST['Nom']:null;  
 
je comprend pas trop le role du  null et du point d'interrogation.
 
merci

mood
Publicité
Posté le 27-02-2006 à 10:48:15  profilanswer
 

n°1314117
omega2
Posté le 27-02-2006 à 10:53:04  profilanswer
 

la structure

Code :
  1. instruction1 ? instruction2 : instruction3


Veut dire la même que

Code :
  1. if (instruction1) {
  2.     instruction2;
  3. }else{
  4.     instruction3;
  5. }


Le fait de mettre la premiére structure entre parentaise avec un "echo" devant veut simplement dire qu'on va afficher la valeur retourné par "instrucion2" ou par "instruction3" en fonction du résultat de "instruction1".
 
J'espére avoir été assez clair dans l'explication bien que je ne suis pas sur de l'avoir été.

Message cité 1 fois
Message édité par omega2 le 27-02-2006 à 10:53:22
n°1314118
goueg
De passage
Posté le 27-02-2006 à 10:54:42  profilanswer
 

(machin && truc==true)?"yes":"no"
 
veut dire:
 
si (machin && truc==true) est vrai, on renvoie "yes", sinon on renvoie "no".
 
Donc pour ta 1e ligne si $idr est une variable initialisée et qu'elle vaut $code_client[$i], alors on ajoute l'attribut selected (à une checkbox j'imagine), sinon rien.

n°1314123
masklinn
í dag viðrar vel til loftárása
Posté le 27-02-2006 à 10:58:27  profilanswer
 

omega2 a écrit :

la structure

Code :
  1. instruction1 ? instruction2 : instruction3


Veut dire la même que

Code :
  1. if (instruction1) {
  2.     instruction2;
  3. }else{
  4.     instruction3;
  5. }



Pas exactement non, dans le cas de l'expression ternaire le résultat de l'évaluation des branches est renvoyé, pas dans un if/else classique


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1314133
chrif
Posté le 27-02-2006 à 11:06:25  profilanswer
 

goueg a écrit :

(machin && truc==true)?"yes":"no"
 
veut dire:
 
si (machin && truc==true) est vrai, on renvoie "yes", sinon on renvoie "no".
 
Donc pour ta 1e ligne si $idr est une variable initialisée et qu'elle vaut $code_client[$i], alors on ajoute l'attribut selected (à une checkbox j'imagine), sinon rien.


 
merci, j'ai compris pour le null, mais je vois toujours pas à quoi sert le point d'interrogation.

n°1314134
chrif
Posté le 27-02-2006 à 11:07:31  profilanswer
 

Sinon j'ai rien compris pour le if et le else de masklinn :-(

n°1314139
mechkurt
Posté le 27-02-2006 à 11:10:41  profilanswer
 

c'est la syntaxe de l'operateur ternaire qui est faite comme ca:
? = true
: = false
 
sinon j'ai pas bien compris non plus, je crois qu'il veut dire que l'ensemble du ternaire renvoie son etat (true ou false) alors qu'un ensemble if else ne renvoie rien...


---------------
D3
n°1314143
goueg
De passage
Posté le 27-02-2006 à 11:11:56  profilanswer
 

chrif a écrit :

merci, j'ai compris pour le null, mais je vois toujours pas à quoi sert le point d'interrogation.


bin avant le "?" tu as le test (qui sera vrai ou faux)
entre le "?" et le ":" tu as ce qui est renvoyé si le test est vrai
après le ":" tu as ce qui est renvoyé si le test est faux

n°1314145
omega2
Posté le 27-02-2006 à 11:13:02  profilanswer
 

masklinn disait juste que (par exemple) faire un  

Code :
  1. echo if ...

n'affichera rien vu que le if ne fournira aucune valeur au "echo" tandisque qu'avec la structure basé sur le "?" et le ":" renvéra soit le résultat de ce qui est entre le "?" et le ":" soit ce qui est entre le ":" et le ";" suivant.
 
Une "expression ternaire" est une expression qui a trois membre. Dans le cas présent, ce qui est avant le "?" ce qui est entre le "?" et le ":" et ce qui est aprés le ":".

n°1314146
goueg
De passage
Posté le 27-02-2006 à 11:14:16  profilanswer
 

un exemple:
 
<body><?=(true?"yes":"no" )?></body>
 
donnera après l'exécution du PHP:
<body>yes</body>
 
alors que <body><?=(false?"yes":"no" )?></body>
donnera
<body>no</body>

mood
Publicité
Posté le 27-02-2006 à 11:14:16  profilanswer
 

n°1314148
mechkurt
Posté le 27-02-2006 à 11:14:59  profilanswer
 

autant pour moi...
ca renvoi pas l'etat general de l'operateur mais ce qui se trouve entre ? et : ou entre : et ; suivant la condition...


---------------
D3
n°1314159
chrif
Posté le 27-02-2006 à 11:23:33  profilanswer
 

Merci beaucoup, j'ai bien compris.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Signification d'une ligne de code en PHP

 

Sujets relatifs
[Oracle XML] Requete simple, 1 ligne de résultat = plusieurs résultatsProblème avec memory_limit de PHP.ini
[CSS] Répartir régulièrement sur une lignePHP MAJ table, formulaire ds un tableau
Obtenir un Code Source avec redirection vers une framePHP/SQL, 2 tables récupérations dans un formulaire
Impossible d'effacer un répertoire créé avec PHPexternaliser du code ant
comment deverrouiller le code autogénéré dans Netbeans 4.1 ?saut de ligne dans un excel créé en php
Plus de sujets relatifs à : Signification d'une ligne de code en PHP


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR