simplifier mon code php

Mammouth du PHP | 843 Messages

28 nov. 2006, 11:43

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 ;)
:: contactez moi par MP ::
:non: NON au language SMS sur les forums :non:

ViPHP
ViPHP | 3607 Messages

28 nov. 2006, 11:51

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

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

28 nov. 2006, 11:57

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 ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Mammouth du PHP | 843 Messages

28 nov. 2006, 11:58

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" :)
:: contactez moi par MP ::
:non: NON au language SMS sur les forums :non:

Mammouth du PHP | 505 Messages

28 nov. 2006, 12:31

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.

Mammouth du PHP | 843 Messages

28 nov. 2006, 12:46

merci du coup de main ;)

je laisse le topic ouvert un moment au cas ou certain voudrais s"etendre sur ce genre de sujet :)
:: contactez moi par MP ::
:non: NON au language SMS sur les forums :non: