[Résolu] Php : simplification code


salva
WRInaute accro
WRInaute accro
 
Messages: 4277
Inscription: 16 Avr 2006

[Résolu] Php : simplification code

Message le Mer Mar 31, 2010 12:33

Bonjour,

J'ai bricolé une fonction et je souhaiterai simplifier la seconde condition du if.
Code: Tout sélectionner
              <?php
               $mesUrls = $_SERVER['REQUEST_URI'];
               if( count($this->headerMethods)&&($mesUrls == '/list/11' || $mesUrls == '/list/14' || $mesUrls == '/list/25' || $mesUrls == '/list/31' || $mesUrls == '/list/36' || $mesUrls == '/list/42' || $mesUrls == '/list/47' || $mesUrls == '/list/54' || $mesUrls == '/list/61' || $mesUrls == '/list/66' || $mesUrls == '/list/71' || $mesUrls == '/list/76' || $mesUrls == '/list/85' || $mesUrls == '/list/94' || $mesUrls == '/list/100' || $mesUrls == '/list/105' || $mesUrls == '/list/114' || $mesUrls == '/list/123' || $mesUrls == '/list/132' || $mesUrls == '/list/141' || $mesUrls == '/list/150' || $mesUrls == '/list/159' || $mesUrls == '/list/168' || $mesUrls == '/list/176') )
                   {
                     echo "";
                   }
               else
                   {
                     echo "<span class='headermethod'>&nbsp;";
                     echo implode(" | \n", $this->headerMethods);
                     echo "&nbsp;</span>";
                   }
              ?>
Merci à ceux qui pourront m'aider.
Dernière édition par salva le Mer Mar 31, 2010 13:24, édité 1 fois.

jcaron
WRInaute accro
WRInaute accro
 
Messages: 2685
Inscription: 13 Fév 2004

Re: Php : simplification code

Message le Mer Mar 31, 2010 12:49

Je te mets juste le bout important:

preg_match('#^/list/(11|14|25|31|36|etc.|176)$#',$mesUrls)

Sinon tu peux faire un tableau associatif avec la liste des numéros associatifs, faire un preg_match('#^/list/(\d+)$#',$mesUrls,$matches) et regarder si $tableau[$matches[1]] existe.

Jacques.


salva
WRInaute accro
WRInaute accro
 
Messages: 4277
Inscription: 16 Avr 2006

Re: Php : simplification code

Message le Mer Mar 31, 2010 13:23

Merci Jacques, nickel chrome.


Nic'O
WRInaute discret
WRInaute discret
 
Messages: 181
Inscription: 13 Mai 2009

Re: Php : simplification code

Message le Mer Mar 31, 2010 13:26

Seconde solution également passer la seconde condition dans un switch, ca sera plus "sexy".


salva
WRInaute accro
WRInaute accro
 
Messages: 4277
Inscription: 16 Avr 2006

Re: Php : simplification code

Message le Mer Mar 31, 2010 13:33

Nic'O a écrit:ca sera plus "sexy".
Comme je suis curieux, en quoi ce serait plus sexy ? A la lecture ou en efficacité ?


Nic'O
WRInaute discret
WRInaute discret
 
Messages: 181
Inscription: 13 Mai 2009

Re: [Résolu] Php : simplification code

Message le Mer Mar 31, 2010 14:08

à la lecture dans un premier temps, gain de temps au débugage, etc.
Coté perf, j'ai pas testé mais ca doit être kiff je pense.


salva
WRInaute accro
WRInaute accro
 
Messages: 4277
Inscription: 16 Avr 2006

Re: [Résolu] Php : simplification code

Message le Mer Mar 31, 2010 14:13

Intéressant mais comme il s'agit d'un besoin ponctuel je vais m'en tenir au preg_match de Jacques.
Merci quand même.

jcaron
WRInaute accro
WRInaute accro
 
Messages: 2685
Inscription: 13 Fév 2004

Re: [Résolu] Php : simplification code

Message le Mer Mar 31, 2010 14:26

Si tu as beaucoup de numéros différents, je pense que la solution du preg_match et du tableau associatif doit être la plus rapide et la plus lisible. En tous cas en perl ce serait le cas, on peut espérer que l'implémentation des tableaux associatifs de php est efficace.

Jacques.


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :

Consultez la description détaillée des produits ou services de Google suivants : Google Code



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités