web-dev-qa-db-fra.com

PHP - vérifie si la variable est indéfinie

Considérez cette déclaration jquery 

isTouch = document.createTouch !== undefined

Je voudrais savoir si nous avons une déclaration similaire en PHP, n'étant pas isset () mais vérifiant littéralement une valeur indéfinie, quelque chose comme:

$isTouch != "" 

Existe-t-il quelque chose de similaire à ce qui précède en PHP?

55
Timothy Coetzee

Vous pouvez utiliser - 

$isTouch = isset($variable);

Il va stocker true si $variable est défini sinon false. Si nécessaire, inversez simplement le !.

Remarque: Renvoie VRAI si var existe et a une valeur autre que NULL, FALSE sinon.

Ou si vous voulez vérifier false, 0 etc également, utilisez empty()

$isTouch = empty($variable);

empty() travaille pour - 

  • "" (une chaîne vide)
  • 0 (0 sous forme d'entier)
  • 0.0 (0 en tant que float)
  • "0" (0 sous forme de chaîne)
  • NUL
  • FAUX
  • array () (un tableau vide)
  • $ var; (une variable déclarée, mais sans valeur)
92
Sougata Bose

Une autre façon est simplement:

if($test){
    echo "Yes 1";
}
if(!is_null($test)){
    echo "Yes 2";
}

$test = "hello";

if($test){
    echo "Yes 3";
}

Reviendra:

"Yes 3"

Le meilleur moyen est d'utiliser isset (), sinon vous pouvez avoir une erreur comme "$ test indéfini".

Vous pouvez le faire comme ça:

if( isset($test) && ($test!==null) )

Vous n'aurez aucune erreur car la première condition n'est pas acceptée.

16
TiDJ

Pour vérifier si la variable est définie, vous devez utiliser la fonction isset.

$lorem = 'potato';

if(isset($lorem)){
    echo 'isset true' . '<br />';
}else{
    echo 'isset false' . '<br />';
}

if(isset($ipsum)){
    echo 'isset true' . '<br />';
}else{
    echo 'isset false' . '<br />';
}

ce code sera imprimé:

isset true
isset false

pour en savoir plus, consultez https://php.net/manual/fr/function.isset.php

6
ErasmoOliveira

Vous pouvez utiliser -

Opérateur ternaire pour vérifier la valeur météo définie par POST/GET ou quelque chose comme ça

$value1 = $_POST['value1'] = isset($_POST['value1']) ? $_POST['value1'] : '';
$value2 = $_POST['value2'] = isset($_POST['value2']) ? $_POST['value2'] : '';
$value3 = $_POST['value3'] = isset($_POST['value3']) ? $_POST['value3'] : '';
$value4 = $_POST['value4'] = isset($_POST['value4']) ? $_POST['value4'] : '';
4
Sumit Thakur

L'opérateur 'strict not equal' (!==) de JavaScript comparé à undefined ne pas donne false sur les valeurs null.

var createTouch = null;
isTouch = createTouch !== undefined  // true

Pour obtenir un comportement équivalent en PHP, vous pouvez vérifier si le nom de la variable existe dans les clés du résultat de get_defined_vars().

// just to simplify output format
const BR = '<br>' . PHP_EOL;

// set a global variable to test independence in local scope
$test = 1;

// test in local scope (what is working in global scope as well)
function test()
{
  // is global variable found?
  echo '$test ' . ( array_key_exists('test', get_defined_vars())
                    ? 'exists.' : 'does not exist.' ) . BR;
  // $test does not exist.

  // is local variable found?
  $test = null;
  echo '$test ' . ( array_key_exists('test', get_defined_vars())
                    ? 'exists.' : 'does not exist.' ) . BR;
  // $test exists.

  // try same non-null variable value as globally defined as well
  $test = 1;
  echo '$test ' . ( array_key_exists('test', get_defined_vars())
                    ? 'exists.' : 'does not exist.' ) . BR;
  // $test exists.

  // repeat test after variable is unset
  unset($test);
  echo '$test ' . ( array_key_exists('test', get_defined_vars())
                    ? 'exists.' : 'does not exist.') . BR;
  // $test does not exist.
}

test();

Dans la plupart des cas, isset($variable) est approprié. C'est l'équivalent de array_key_exists('variable', get_defined_vars()) && null !== $variable. Si vous utilisez simplement null !== $variable sans vérification préalable de son existence, vous allez gâcher vos journaux avec des avertissements, car il s’agit d’une tentative de lecture du value d’une variable non définie.

Cependant, vous pouvez appliquer une variable non définie à une référence sans aucun avertissement:

// write our own isset() function
function my_isset(&$var)
{
  // here $var is defined
  // and initialized to null if the given argument was not defined
  return null === $var;
}

// passing an undefined variable by reference does not log any warning
$is_set = my_isset($undefined_variable);   // $is_set is false
0
Quasimodo's clone
if(isset($variable)){
    $isTouch = $variable;
}

OR

if(!isset($variable)){
    $isTouch = "";// 
}
0
Waruna Manjula