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 non définie, quelque chose comme:
$isTouch != ""
Y a-t-il quelque chose de similaire en PHP?
Réponses:
Vous pouvez utiliser -
$isTouch = isset($variable);
Il retournera
true
si le$variable
est défini. si la variable n'est pas définie, elle retournerafalse
.Si vous voulez vérifier
false
,0
etc Vous pouvez alors utiliserempty()
-$isTouch = empty($variable);
empty()
fonctionne pour -la source
isset()
renvoie toujours bool.true
oufalse
. Donc pas besoin de ce casting.empty()
qui renvoie false s'il s'agit d'une chaîne vide.isset()
retournera true si c'est une chaîne vide, vide également effectue une vérification interne de l'ensemble.$isTouch = (bool) $variable;
qui fera la même choseisset()
et est peut-être un peu mieux car cela fonctionnera commeempty()
.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 "undefined $ test".
Vous pouvez le faire comme ceci:
if( isset($test) && ($test!==null) )
Vous n'aurez aucune erreur car la première condition n'est pas acceptée.
la source
$test!==null
sans parenthèses, que va-t-il se passer? Cela donnera-t-il une erreur?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 imprimera:
isset true isset false
en savoir plus sur https://php.net/manual/en/function.isset.php
la source
Vous pouvez utiliser -
Opérateur ternaire pour vérifier la valeur de la météo définie par POST / GET ou pas 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'] : '';
la source
Opérateur « pas stricte égalité » de JavaScript (
!==
) sur la comparaison avecundefined
ne pas entraînerfalse
sur desnull
valeurs.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)
c'est approprié. C'est équivalent àarray_key_exists('variable', get_defined_vars()) && null !== $variable
. Si vous utilisez simplementnull !== $variable
sans pré-vérification de l'existence, vous gâcherez vos journaux avec des avertissements car il s'agit d'une tentative de lecture de la valeur 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
la source
if(isset($variable)){ $isTouch = $variable; }
OU
if(!isset($variable)){ $isTouch = "";// }
la source