Qqun pourrait-il m'éclaircir concernant cette synthaxe ?
YnOThAr
Messages postés22Date d'inscriptionvendredi 14 mars 2003StatutMembreDernière intervention 9 juillet 2006
-
25 juin 2005 à 00:06
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 2007
-
27 juin 2005 à 14:27
Voila je mattai un script et puis je suis tombé sur une synthax qui
correspond grossomodo à if (isset($mavariable)) { $mavariable $variabletemp; } else { $mavariable $defaut; }
Voila la synthaxe : $mavariable = $variabletemp ?"$variabletemp" : $defaut;
Alors est ce que qqun peut m'expliquer le point d'interrogation et la
chaine qui suit...lol je comprend pas ^^. Et si quelqu'un peut me
trouver la reference dans le manuel php de cet synthaxe pour savoir
depuis qu'elle version elle est utilisable.
Merci
A voir également:
Qqun pourrait-il m'éclaircir concernant cette synthaxe ?
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 25 juin 2005 à 02:18
Salut,
elle est utilisable partout. Ce qui suit après le point d'interrogation
et avant les deux points est exécuté si la condition est vraie, et ce
qui suit les deux points est exécuté si la condition est fausse.
YnOThAr
Messages postés22Date d'inscriptionvendredi 14 mars 2003StatutMembreDernière intervention 9 juillet 2006 25 juin 2005 à 11:32
Enfin moi ce que je trouve bizar c'est que la variable ?variabletemp
est écrite sous forme d'une chaine de caractère... Mais bon si c'est
plus lent...qu'un bon vieu if/else
Vous n’avez pas trouvé la réponse que vous recherchez ?
FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 20153 25 juin 2005 à 18:14
Disons qu'utiliser l'opérateur ternaire est beaucoup plus facile à lire
quand on veut faire rentrer une valeur ou une autre dans une variable.
En tout cas, c'est beaucoup moins chiant à lire que
if ($truc) {
$truc = $machin;
} else {
$truc = $bidule;
}
5 lignes contre 1 seule... y'a quoi qui va changer : 13ms sur 100 000
iterations ? C'est à dire pas grand chose au final (car il faut quand
même qu'il y est 100 000 visiteurs en un court laps de temps (dans un
ordre de grandeur de la milliseconde), ce qui n'est pas le souhait de
tout le monde !).
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 26 juin 2005 à 11:26
Ouais,
perso je n'utilise l'operateur ternaire que quand je trouve que c'est
plus clair, et c'est vrai que ca arrive. Mais ca reste rare.
Generalement, c'est quand j'inclus du php dans du html.
Je veux dire, quand j'ai plein de lignes html, et que j'ai juste besoin
de realiser 1 petite condition en php. Je trouve ca plus clair car ca
ne "casse" pas trop le html.
Autrement, je trouve aussi plus clair a lire un simple if...else.
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 26 juin 2005 à 11:37
pareil, je l'utilise aussi, surtout quand j'ai quelques variables à
vérifier à la suite, plutôt que d'avoir 40 lignes de if/else j'ai 10
lignes avec ça, mais ça reste très rare aussi me concernant.
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 26 juin 2005 à 11:49
le "bien employé" n'a pas son sens ici. Tout dépend ce que tu entends
par "bien employé". Pour moi le "bien employé" c'est tout d'abord le
code le plus rapide, et ensuite le code le plus propre. 10 lignes
propres contre 40 lignes un poil plus rapides (propres aussi mais
chiantes à lire), le choix est vite fait me concernant.
FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 20153 26 juin 2005 à 13:52
Mais si un jour t'as un gros problème de maintenance (genre faille de
sécurité), jte dis pas la galère pour t'y retrouver. Pire encore si tu
passes ton projet à quelqu'un d'autres... et qui se retrouve confronter
à un problème faisant appel a ton code "rapide" mais chaotique :)
Finalement, si c'est pour gagner 1ms pour 10000 passage sur une page en 1seconde d'intervalle, ca vaut vraiment pas le coup =)
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 26 juin 2005 à 14:24
"Pire encore si tu passes ton projet à quelqu'un d'autres... et qui se
retrouve confronter à un problème faisant appel a ton code "rapide"
mais chaotique :)"
Je ne passe pas mes projets ;-)
Ensuite un if/else n'est pas du tout chaotique, c'est la syntaxe
standard. L'opérateur ternaire n'est là que pour simplifier
l'expression (et encore...). Un if/else est plus simple à lire qu'une
syntaxe comme celle-ci.
FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 20153 26 juin 2005 à 15:05
C'est plus facile de lire 20 fois :
$truc = ($machin) ? $machin : $bidule;
que 20 fois :
if ($machin)
$truc = $machin;
else
$truc = $bidule;
4 lignes au lieu d'1... multiplie les par 20 :) 100 lignes contre 20, l'avantage est clairement pour l'opérateur ternaire.
Enfin, moi jvais pas pleurer pour une pauvre milliseconde, sachant que
c'est toujours la transmission client/serveur qui fait le plus défaut
dans la visite d'une page web, et certainement pas la génération du
code (100 à 200ms de génération de code --> 3 à 4sec le temps de
chargement complète de la page (au mieux des cas) ).
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 26 juin 2005 à 15:07
Bah relis mon avant dernier post dans ce cas tu verras que je partage
ton avis dans le cas présent : "Pour moi le 'bien employé' c'est tout
d'abord le code le plus rapide,
et ensuite le code le plus propre. 10 lignes propres contre 40 lignes
un poil plus rapides (propres aussi mais chiantes à lire), le choix est
vite fait me concernant."