web-dev-qa-db-fra.com

vérifier si variable vide

if ($user_id == NULL || $user_name == NULL || $user_logged == NULL) {
    $user_id = '-1';
    $user_name = NULL;
    $user_logged = NULL;
}
if ($user_admin == NULL) {
    $user_admin = NULL;
}
  1. Y a-t-il un moyen plus court de le faire?
  2. Et si j’ai raison, il devrait être testé avec is_null?
  3. Il est possible que $user_id, $user_name et $user_logged écrivent sur une ligne (peut-être un tableau?) Sans répéter NULL?
29
ZeroSuf3r

Si vous voulez vérifier si une variable est vraiment NULL, utilisez l'opérateur d'identité:

$user_id === NULL  // FALSE == NULL is true, FALSE === NULL is false
is_null($user_id)

Si vous voulez vérifier si une variable n'est pas définie:

!isset($user_id)

Ou si la variable n'est pas vide, une chaîne vide, zéro, ..:

empty($user_id)

Si vous voulez vérifier si une variable n'est pas une chaîne vide, ! sera également suffisant:

!$user_id
71
Rob W

Vous pouvez vérifier si elle n'est pas définie (ou vide) de plusieurs manières.

if (!$var){ }

Ou:

if ($var === null){ } // This checks if the variable, by type, IS null.

Ou:

if (empty($var)){ }

Vous pouvez vérifier si c'est déclaré avec:

if (!isset($var)){ }

Prenez note que PHP interprète 0 (entier) et "" (chaîne vide) et false comme "vide" - et malgré des types différents, ces valeurs spécifiques sont considérées par PHP comme identiques. Peu importe si $ var n'est jamais défini/déclaré ou s'il est déclaré comme $ var = 0 ou $ var = "". Vous comparez souvent en utilisant l'opérateur === qui compare le type de données. Si $ var est 0 (entier), $ var == "" ou $ var == false sera validé, mais $ var === "" ou $ var === false ne le sera pas.

9

ici, j'ai expliqué comment fonctionnent la fonction vide et isset, veuillez utiliser celle qui convient. Utilisez également la fonction is_null.

<?php
    $val = 0;
    //evaluates to true because $var is empty
    if (empty($val)) {
        echo '$val is either 0, empty, or not set at all';
    }
    //evaluates to true because $VAR IS SET
    if (isset($val)) {
        echo '$val is set even though it is empty';
    }
    ?>
1
user3470929

empty() est un peu plus court, au lieu de vérifier !$user_id comme suggéré ailleurs:

if (empty($user_id) || empty($user_name) || empty($user_logged)) {
}
1
Michael Berkowski

Cela vaut la peine d'être noté - et je ne l'ai découvert qu'après presque 9 ans de codage PHP que le meilleur moyen de vérifier l'existence d'une variable est d'utiliser la fonction empty (). En effet, il ne génère pas d’erreurs et même si vous les désactivez - PHP les génère toujours! empty () ne renverra cependant pas d'erreur si la variable n'existe pas. Je pense donc que la bonne réponse n’est pas de vérifier si sa valeur est nulle mais de procéder comme suit

if (!empty($var) && is_null($var))

Notez le manuel PHP 

la variable est considérée vide si elle n'existe pas ou si sa valeur est égale à FALSE

Au lieu d'être nul, ce qui est pratique ici!

1
Antony

Pour vérifier les valeurs NULL, vous pouvez utiliser is_null () comme indiqué ci-dessous.

if (is_null($value)) {
   $value = "MY TEXT"; //define to suit
}
0
user5340092

Je me suis senti obligé de répondre à cette question à cause des autres réponses. Utilisez empty () si vous le pouvez car il couvre plus de bases. Futur tu me remercieras.

Par exemple, vous devrez faire des choses comme isset () && strlen () où vous pourriez utiliser empty (). Pensez-y comme si ce vide est comme! Isset ($ var) || $ var == false

0
Mike Q

vous pouvez utiliser la routine isset ().

vous pouvez également faire référence à une gamme de fonctions is_type () telles que 

is_string (), is_float (), is_int (), etc. pour tester plus précisément

0
Vijeenrosh P.W

1.

if(!($user_id || $user_name || $user_logged)){
    //do your stuff
}

2 En fait, je n'ai pas compris pourquoi vous écrivez une telle construction.

3 Placez toutes les valeurs dans un tableau, par exemple $ ar ["user_id"], etc.

0
Dmitry Zaytsev

Veuillez définir ce que vous entendez par "vide".

Le test que j'utilise normalement est isset() .

0
Alnitak

Le moyen le plus simple et le plus simple de vérifier si une variable est vide dans PHP consiste à utiliser la fonction empty (). 

si vide ($ variable) alors ....

0
user1445657
<?php

$nothing = NULL;
$something = '';
$array = array(1,2,3);

// Create a function that checks if a variable is set or empty, and display "$variable_name is SET|EMPTY"
function  check($var) {
    if (isset($var)) {
        echo 'Variable is SET'. PHP_EOL;
  } elseif (empty($var)) { 
        echo 'Variable is empty' . PHP_EOL;

   } 

} 

check($nothing);
check($something);
check($array);
0
vitzma16