Technique de programmation?

Technique de programmation? - PHP - Programmation

Marsh Posté le 24-01-2004 à 00:27:17    

Hello,
J'ai une question sur une technique de programmation:
 
Vaut-il mieux utiliser une syntaxe telle que:

Code :
  1. if($var=="truc" )
  2. {
  3. // traitement
  4. }
  5. elseif($var=="trac" )
  6. {
  7. // traitement2
  8. }
  9. ....


ou plutot:

Code :
  1. switch($var)
  2. {
  3. case "truc:"
  4. traitement();
  5. break;
  6. case "trac":
  7. traitement2();
  8. ....
  9. }


Ou traitement() et traitement2() ...... seraient des fonctions qui ferait la même chose que les trucs entre les if (je sais pas si c'est clair :D ).

Reply

Marsh Posté le 24-01-2004 à 00:27:17   

Reply

Marsh Posté le 24-01-2004 à 00:38:15    

moi je vois pas pourquoi tu appelles des fonctions dans ton switch, tu pourrais aussi faire le traitement directement.. (mais ça ça depend des cas..)
 
 
ben sinon c'est comme tu le sens..
sachant que les if sont plus rapides que le switch case.. mais bon..
 
et pour faire du tunning :
 

Code :
  1. if($var==='truc')
  2. {
  3. //traitement  
  4. }
  5. elseif($var==='trac')
  6. {
  7. //traitement2  
  8. }


 
 :D


Message édité par Mr yvele le 24-01-2004 à 00:38:27

---------------
yvele n'est plus.
Reply

Marsh Posté le 24-01-2004 à 01:01:35    

Je pense que si t'a enormement de tests à faire, ca peut valoir le coup d'utiliser le switch, mais perso je suis presque toujours aux if else elseif ;)  
 
C'est quoi deja les === ? :??: (me souviens pu car je m'en sers pas, mais jpourrais ptete ..)

Reply

Marsh Posté le 24-01-2004 à 01:30:38    

aspegic500mg a écrit :


C'est quoi deja les === ? :??: (me souviens pu car je m'en sers pas, mais jpourrais ptete ..)


 
même chose que le == mais avec correspondance des types de variables :)

Reply

Marsh Posté le 24-01-2004 à 02:20:15    

naceroth a écrit :


 
même chose que le == mais avec correspondance des types de variables :)


 
Mais pour des string ca change rien non? :??:  
 
Par contre avec du "0" '0' et false, ca change peut-etre quelque chose? :heink:  
(jvais aller lire un peu mes bouquins je trouverai la reponse :o )

Reply

Marsh Posté le 24-01-2004 à 02:35:42    

if (0 == false) => vrai
if (0 === false) => faux, pas le même type
if (0 == '0') => vrai
if (0 === '0') => faux
 
Ca permets d'éviter de faire des actions sur des types pas forcéments compatible (comme comparer une chaine et un entier ou les comparaisons entier/réel)


Message édité par naceroth le 24-01-2004 à 02:36:55
Reply

Marsh Posté le 24-01-2004 à 08:38:05    

naceroth a écrit :

if (0 == false) => vrai
if (0 === false) => faux, pas le même type
if (0 == '0') => vrai
if (0 === '0') => faux
 
Ca permets d'éviter de faire des actions sur des types pas forcéments compatible (comme comparer une chaine et un entier ou les comparaisons entier/réel)


 
ok merci, c'est clair :jap:

Reply

Marsh Posté le 24-01-2004 à 11:22:57    

D'ac merci pour les réponses.
Ben en fait je dois facile avoir 20 if dans mon fichier alors je vais peut-être me tourner vers switch.

Reply

Marsh Posté le 24-01-2004 à 20:07:40    

naceroth a écrit :

if (0 == false) => vrai
if (0 === false) => faux, pas le même type
if (0 == '0') => vrai
if (0 === '0') => faux
 
Ca permets d'éviter de faire des actions sur des types pas forcéments compatible (comme comparer une chaine et un entier ou les comparaisons entier/réel)


 
 :pfff:  
 
Mon dieu ce langage est moche... Rien a dire je ne pourrai jamais etre fan de php  :non:

Reply

Marsh Posté le 24-01-2004 à 20:42:06    

Kahyman a écrit :


Mon dieu ce langage est moche... Rien a dire je ne pourrai jamais etre fan de php


 
Je te précise quand même que le langage php s'arrêtait à => hein :D

Reply

Marsh Posté le 24-01-2004 à 20:42:06   

Reply

Marsh Posté le 24-01-2004 à 20:49:00    

naceroth a écrit :


 
Je te précise quand même que le langage php s'arrêtait à => hein :D


 
Je sais mais quand meme  :lol:

Reply

Marsh Posté le 24-01-2004 à 21:12:44    

Code :
  1. <cfif #num# GT 10>
  2.   Le nombre est plus grand que 10
  3. <cfelse>
  4.   C'est un chiffre ce nombre
  5. </cfif>


Hum, bien plus beau comme langage :D
 
(tout ça pour dire que les goûts et les couleurs :D je supporte pas le pseudo objet inutile de l'asp par exemple :))

Reply

Marsh Posté le 24-01-2004 à 21:51:55    

naceroth a écrit :

Code :
  1. <cfif #num# GT 10>
  2.   Le nombre est plus grand que 10
  3. <cfelse>
  4.   C'est un chiffre ce nombre
  5. </cfif>


Hum, bien plus beau comme langage :D
 
(tout ça pour dire que les goûts et les couleurs :D je supporte pas le pseudo objet inutile de l'asp par exemple :))


 
Oui mais l'objet en PHP c'est d'un ridicule :) Je hais ASP ceci dit alors que PHP je le trouve juste moche.
 
 :lol:

Reply

Marsh Posté le 25-01-2004 à 13:36:35    

Ayuget > l'idée, c'est d'être lisible, et de ne pas embarquer des dizaines de lignes dans un if/else ou un switch/case. Mieux vaut faire des fonctions à ce moment là. Ensuite, si t'as beaucoup de tests à faire, comme dit précédemment, un switch/case convient mieux qu'un if/else, à moins que tu aies plusieurs conditions à tester.
 
Kahyman > question de goût, heureusement.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

Marsh Posté le 26-01-2004 à 18:39:26    

Kahyman a écrit :


 
Oui mais l'objet en PHP c'est d'un ridicule :) Je hais ASP ceci dit alors que PHP je le trouve juste moche.
 
 :lol:  


 
Pas en PHP 5.0.
Sinon avant effectivement oui c'est assez moche, mais y'en a déjà assez pour pas structurer son programme comme un goret :)


---------------
Loose Change Lies | Bars | Last.fm
Reply

Marsh Posté le 07-02-2004 à 09:57:57    

naceroth a écrit :

Code :
  1. <cfif #num# GT 10>
  2.   Le nombre est plus grand que 10
  3. <cfelse>
  4.   C'est un chiffre ce nombre
  5. </cfif>


Hum, bien plus beau comme langage :D
 
(tout ça pour dire que les goûts et les couleurs :D je supporte pas le pseudo objet inutile de l'asp par exemple :))


 
huhu c'est faux ce qu'il raconte ton truk là.
un chiffre c'est un signe, un nombre est un signifié représenté par un chiffre.
(et pas question de nombre de chiffre là-dedans. légende scolaire)


Message édité par tahitirouge le 07-02-2004 à 09:59:35
Reply

Marsh Posté le 07-02-2004 à 10:53:41    

tahitirouge a écrit :


 
un chiffre c'est un signe, un nombre est un signifié représenté par un chiffre.
(et pas question de nombre de chiffre là-dedans. légende scolaire)


 
:??: j'ai pas tout suivi


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 07-02-2004 à 11:57:05    

antp a écrit :


 
:??: j'ai pas tout suivi


T'façon ma remarque n'a rien à faire ici, elle ne parle pas de programmation :sweat:

Reply

Marsh Posté le 07-02-2004 à 13:06:49    

Sinon, pour parcourir un tableau dont vous connaissez parfaitement les dimensions, vous préférez utiliser for() ou foreach() ?
Niveau perfs c'est kif-kif?

Reply

Marsh Posté le 07-02-2004 à 14:05:45    

Ayuget a écrit :

Sinon, pour parcourir un tableau dont vous connaissez parfaitement les dimensions, vous préférez utiliser for() ou foreach() ?
Niveau perfs c'est kif-kif?


Mais puisqu'on te dit que c'est pas destiné au même usage...

Reply

Marsh Posté le 07-02-2004 à 14:21:23    

personne ne me l'a déjà signalé?  :??:


Message édité par Ayuget le 07-02-2004 à 14:21:37
Reply

Marsh Posté le 07-02-2004 à 14:38:08    

juste, c'était dans un autre post tout à fait similaire.
 
Donc, je reproduis ici: foreach ne doit servir que si tu as des tableaux associés. Autrement, c'est plus lourd et ça n'apporte rien.

Reply

Marsh Posté le 07-02-2004 à 14:39:38    

d'accord, merci :D

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed