13 votes

Vérifier si une constante est vide

Pourquoi cela n'est-il pas possible ?

if(!empty( _MY_CONST)){
  ...

Mais c'est pourtant le cas :

$my_const = _MY_CONST;
if(!empty($my_const)){
  ...

define( 'QUOTA_MSG' , '' ); // There is currently no message to show

$message = QUOTA_MSG;
if(!empty($message)){
  echo $message;
}

Je voulais juste le rendre un peu plus propre en faisant référence à la constante elle-même.

17voto

Pekka 웃 Points 249607

Voir le manuel : empty() est une construction du langage, et non une fonction.

empty() ne vérifie que les variables, car toute autre vérification entraînera une erreur d'analyse. En d'autres termes, ce qui suit ne fonctionnera pas : empty(trim($name)) .

Vous devrez donc utiliser une variable - empty() est vraiment ce que vous voulez en premier lieu ? Il retournerait vrai lorsque la valeur de la constante est "0", par exemple.

Peut-être que vous devez tester l'existence de la constante en utilisant defined() à la place ?

13voto

Arthur Points 2237

Je te fais juste savoir que tu peux faire

if(!empty(MY_CONST))

depuis PHP 5.5 .

7voto

Nabil Kadimi Points 2109

Vous pouvez vous en accommoder si pour une raison quelconque vous êtes toujours n'utilise pas PHP 5.5.

if (defined('MY_CONST') && MY_CONST) {
    echo 'OK';
}

3voto

Matt H. Points 1484
if (!empty(constant('MY_CONST')) {
    ...
}

constante mixte (chaîne $name)

Retourne la valeur de la constante indiquée par $name, ou NULL si la constante n'est pas définie.

http://php.net/manual/en/function.constant.php

2voto

Qu'en est-il de strlen ?

if(strlen(MY_CONST) == 0)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X