Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/02/2011, 19h13   #1
Membre du Club
 
Inscription : février 2010
Messages : 22
Détails du profil
Informations forums :
Inscription : février 2010
Messages : 22
Points : 54
Points : 54
Par défaut Problème de ternaires

Bonjour à tous,

je souhaite condenser le script ci dessous en utilisant les ternaires. Selon la valeur de $long, il me renvois un message différent ('Reponse 1', 'Reponse 2' ou 'Reponse 3'). J'ai donc converti tout cela (voir second script). Avec la valeur de $long à 4, il devrait me renvoyer 'Reponse 1' or il me renvois 'Reponse 2'. J'ai beau chercher, je ne résous pas le problème.

Merci d'avance.


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
 
$long = '4';
$n_secu = '';
 
if ($long < '7')
$n_secu = 1;
else if (($long > '6') && ($long < '10'))
$n_secu = 2;
else $n_secu = 3;
 
if (!empty($n_secu))
{
	if ($n_secu === 1)
	echo 'Reponse 1';
	else if ($n_secu === 2)
	echo 'Reponse 2';
	else echo 'Reponse 3';
};
 
?>

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
 
$long = '4';
$n_secu = '';
 
($long < '7') ? $n_secu = 1 : (($long > '6') && ($long < '10')) ? $n_secu = 2 : $n_secu = 3;
 
if (!empty($n_secu))
{
	echo ($n_secu === 1) ? 'Reponse 1' : ($n_secu === 2) ? 'Reponse 2' : 'Reponse 3';
}
 
?>
attila74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/02/2011, 19h34   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Attention a ne pas rendre ton code illisible en voulant gagner de la ligne de code.
Code :
$n_secu = $long < 7 ? 1 : ($long < 10 ? 2 : 3);
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/02/2011, 22h12   #3
Membre du Club
 
Inscription : février 2010
Messages : 22
Détails du profil
Informations forums :
Inscription : février 2010
Messages : 22
Points : 54
Points : 54
Merci pour la correction syntaxique

Oui en général j'évite d'utiliser les ternaires quand j'ai plus de 2 conditions donc j'avais zappé les parenthèses notamment et également dans la partie affichage.

Le code corrigé et fonctionnel :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
<?php
 
$long = '4';
 
$n_secu = $long < 7 ? 1 : ($long < 10 ? 2 : 3);
 
if (!empty($n_secu))
{
	echo $n_secu === 1 ? 'Reponse 1' : ($n_secu === 2 ? 'Reponse 2' : 'Reponse 3');
}
 
?>
Merci encore.
attila74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h18.


 
 
 
 
Partenaires

Hébergement Web