Page 1 sur 1

simplifier mon code php

Posté : 28 nov. 2006, 11:43
par BeRoots
Salut à tous, :)

j'ai souvent tendance à simplifier mon code source afin qu'il soit le plus light possible... Je voulai savoir si il était possible de simplifier ce genre de conditions:
if(basename($_SERVER['PHP_SELF']) != 'page1.php' && basename($_SERVER['PHP_SELF']) != 'page2.php' && basename($_SERVER['PHP_SELF']) != 'page3.php' && basename($_SERVER['PHP_SELF']) != 'page4.php')
{
// ici une boucle dont la condition mérite d'être simplifier ;)
}
elseif(basename($_SERVER['PHP_SELF']) != 'page1.php' && != 'page2.php' && != 'page3.php' && != 'page4.php')
{
// ici ma tentative de simplifcation avec "et" : est elle correct???
}
if(basename($_SERVER['PHP_SELF']) != 'page1.php' || basename($_SERVER['PHP_SELF']) != 'page2.php' || basename($_SERVER['PHP_SELF']) != 'page3.php' || basename($_SERVER['PHP_SELF']) != 'page4.php')
{
// ici une boucle dont la condition mérite d'être simplifier ;)
}
elseif(basename($_SERVER['PHP_SELF']) != ('page1.php' || 'page2.php' || 'page3.php' || 'page4.php'))
{
// ici ma tentative de simplifcation avec "ou" : est elle correct???
}
pouvez vous me dire si ces deux simplification de condition sont bonne, si il y a une meilleur methode... :-k

merci d'avance ;)

Posté : 28 nov. 2006, 11:51
par jojolapine
je ne croit pas que ce soit possible en php de faire:

Code : Tout sélectionner

si (a=(b ou c ou d))
à faire vérifier par les supèrieurs

Posté : 28 nov. 2006, 11:57
par zeus
je ne croit pas que ce soit possible en php de faire:

Code : Tout sélectionner

si (a=(b ou c ou d))
à faire vérifier par les supèrieurs
Bah si ... mais tout dépend de ce qui est attendu ...
if ($a = ($b || $c || $d))
($b || $c || $d) va retouner true ou false.
Si $a egale true ou false, ce test peut être viable.

Ensuite, compare $a à $b, $c ou $d, c'est pas comme ça, effectivement ;)

Posté : 28 nov. 2006, 11:58
par BeRoots
ok je vais attendre un peu pour avoir d'autre avis ;)

pouver vous me dire ce qu'il en est pour la boucle "ou" mais aussi pour la boucle "et" :)

Posté : 28 nov. 2006, 12:31
par titerm
Déjà, un chose toute simple a faire serait de ne faire le
basename($_SERVER['PHP_SELF']) qu'une seule fois.
$page = basename($_SERVER['PHP_SELF']);
if($page != 'page1.php' && $page != 'page2.php' && $page  != 'page3.php' && $page != 'page4.php')
{
// ici une boucle dont la condition mérite d'être simplifier ;)
} 
Seconde possibilité, passer par un tableau, et peaufiner le basename
$page = basename($_SERVER['PHP_SELF'],'.php');
$pageList = array('page1','page2','page3','page4');
if(!in_array($page,$pageList) {
}
Etc...



PS. une condition du type (A != B ou A != C) n'a pas de sens. Elle sera toujour vrai A est soit different de B soit different de C, sauf si B = C mais ca n'a pas plus de sens.

Posté : 28 nov. 2006, 12:46
par BeRoots
merci du coup de main ;)

je laisse le topic ouvert un moment au cas ou certain voudrais s"etendre sur ce genre de sujet :)