diff --git a/ecrire/inc/filtres.php b/ecrire/inc/filtres.php index fb8897aa3358e8e247cf20daf64e938ae8d9d1a5..537ca89b1062a02cd2db7d45864ada9f38606d4c 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; }