From d760cd34db2fe5b04115cf7a9e20ec89f53091c5 Mon Sep 17 00:00:00 2001 From: Eric <eric@smellup.net> Date: Sat, 19 Nov 2016 14:50:59 +0000 Subject: [PATCH] =?UTF-8?q?On=20ajoute=20une=20option=20=C3=A0=20la=20fonc?= =?UTF-8?q?tion=20table=5Fvaleur()=20pour=20permettre=20de=20renvoyer=20la?= =?UTF-8?q?=20valeur=20null=20d'un=20index.=20En=20effet,=20en=20testant?= =?UTF-8?q?=20avec=20isset()=20l'existence=20d'un=20index=20de=20tableau,?= =?UTF-8?q?=20table=5Fvaleur()=20=C3=A9crase=20un=20index=20de=20valeur=20?= =?UTF-8?q?null=20par=20la=20valeur=20par=20d=C3=A9faut=20(comportement=20?= =?UTF-8?q?de=20isset=20=3D=20index=20existe=20et=20n'est=20pas=20null).?= =?UTF-8?q?=20N=C3=A9anmoins,=20il=20est=20aussi=20utile=20parfois=20de=20?= =?UTF-8?q?renvoyer=20une=20valeur=20null=20pour=20un=20index=20existant?= =?UTF-8?q?=20(=C3=A0=20mon=20avis=20ce=20devrait=20=C3=AAtre=20le=20compo?= =?UTF-8?q?rtement=20de=20base).=20Dans=20ce=20cas=20on=20utilise=20array?= =?UTF-8?q?=5Fkey=5Fexists().=20Le=20comportement=20actuel=20n'est=20pas?= =?UTF-8?q?=20modifi=C3=A9=20car=20l'option=20est=20=C3=A0=20false=20par?= =?UTF-8?q?=20d=C3=A9faut.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ecrire/inc/filtres.php | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/ecrire/inc/filtres.php b/ecrire/inc/filtres.php index fb8897aa33..537ca89b10 100644 --- a/ecrire/inc/filtres.php +++ b/ecrire/inc/filtres.php @@ -4213,10 +4213,15 @@ function url_absolue_css($css) { * pour obtenir la valeur de `$tableau['sous']['element']['ici']` * @param mixed $defaut * Valeur par defaut retournée si la clé demandée n'existe pas + * @param bool $conserver_null + * Permet de forcer la fonction à renvoyer la valeur null d'un index + * et non pas $defaut comme cela est fait naturellement par la fonction + * isset. On utilise alors array_key_exists() à la place de isset(). + * * @return mixed * Valeur trouvée ou valeur par défaut. **/ -function table_valeur($table, $cle, $defaut = '') { +function table_valeur($table, $cle, $defaut = '', $conserver_null = false) { foreach (explode('/', $cle) as $k) { $table = is_string($table) ? @unserialize($table) : $table; @@ -4224,7 +4229,11 @@ function table_valeur($table, $cle, $defaut = '') { if (is_object($table)) { $table = (($k !== "") and isset($table->$k)) ? $table->$k : $defaut; } elseif (is_array($table)) { - $table = isset($table[$k]) ? $table[$k] : $defaut; + if ($conserver_null) { + $table = array_key_exists($k, $table) ? $table[$k] : $defaut; + } else { + $table = isset($table[$k]) ? $table[$k] : $defaut; + } } else { $table = $defaut; } -- GitLab