Page 1 sur 1
Simplifier code
Posté : 11 mars 2019, 20:23
par fatalfury
Bonjour, j'aimerais savoir s'il y a possibilité de simplifier ceci ?
Code : Tout sélectionner
if (empty($ban)) {
$ban = null;
}
if (empty($copy)) {
$copy = null;
}
if (empty($menu)) {
$menu = null;
}
if (empty($img)) {
$img = null;
}
if (empty($txt)) {
$txt = null;
}
Merci
Re: Simplifier code
Posté : 11 mars 2019, 21:58
par @rthur
Bonjour,
Trois pistes :
if (empty($ban)) unset(ban);
Ou
if (empty($ban)) $ban = null;
Ou
$ban = empty($ban) ? null : $ban;
Re: Simplifier code
Posté : 12 mars 2019, 11:30
par Saian
Salut,
foreach (array('ban', 'copy', 'menu', 'img', 'txt') as $var)
if (empty($$var))
$$var = null;
Re: Simplifier code
Posté : 12 mars 2019, 12:08
par @rthur
Ah oui, bien vu Saian !

Re: Simplifier code
Posté : 12 mars 2019, 12:27
par Saian
Merci @rthur

C'est typiquement le genre de choses que je fais dans mes codes car j'ai un vrai problème avec les redondances, parfois même minimes. ^^
Re: Simplifier code
Posté : 12 mars 2019, 12:38
par fatalfury
Salut,
foreach (array('ban', 'copy', 'menu', 'img', 'txt') as $var)
if (empty($$var))
$$var = null;
Merci, c'est excellent !!!
J'ai un peu de mal à comprendre la logique des variables dynamiques ici.
Je vais essayer de refaire avec une boucle for, ce qui donne ceci ?
Code : Tout sélectionner
$table = ['ban', 'copy', 'menu', 'img', 'txt'];
$nb_elements = count($table);
for ($i=0; $i<$nb_elements; $i++) {
$var = $table[$i];
if (empty($$var)) $$var = null;
}
Re: Simplifier code
Posté : 12 mars 2019, 12:45
par Saian
Oui ça devrait fonctionner comme ça.
Pour les variables dynamiques c'est pas compliqué en fait :
$foo = 'bar';
$var = 'foo';
echo $$var;// affiche bar, étant donné que $$var correspond à $foo ($var est remplacé par sa valeur) et que $foo est égale à bar.
Re: Simplifier code
Posté : 12 mars 2019, 12:52
par fatalfury
Oui, avec la boucle for, ça devient plus clair pour moi :
Code : Tout sélectionner
if (empty($$var)) $$var = null; // $$var équivaut à $ban, puis $copy, etc...
Merci encore