考虑一下这个jquery语句
isTouch = document.createTouch !== undefined
Run Code Online (Sandbox Code Playgroud)
我想知道我们是否在PHP中有一个类似的语句,不是isset(),而是字面上检查一个未定义的值,如:
$isTouch != ""
在PHP中有类似的东西吗?
Sou*_*ose 126
您可以使用 -
$isTouch = isset($variable);
Run Code Online (Sandbox Code Playgroud)
true
如果$variable
定义了else ,它将存储false
.如果需要反转,只需删除即可!
.
注意:如果var存在且值不是NULL,则返回TRUE,否则返回FALSE.
或者,如果你想检查false
,0
等等也然后使用empty()
-
$isTouch = empty($variable);
Run Code Online (Sandbox Code Playgroud)
empty()
效劳于 -
TiD*_*iDJ 16
另一种方式是:
if($test){
echo "Yes 1";
}
if(!is_null($test)){
echo "Yes 2";
}
$test = "hello";
if($test){
echo "Yes 3";
}
Run Code Online (Sandbox Code Playgroud)
将返回 :
"Yes 3"
Run Code Online (Sandbox Code Playgroud)
最好的方法是使用isset(),否则你可能会遇到类似"undefined $ test"的错误.
你可以这样做:
if( isset($test) && ($test!==null) )
Run Code Online (Sandbox Code Playgroud)
您不会有任何错误,因为不接受第一个条件.
isset()
函数不检查是否定义了变量。您似乎已经明确表示您不是isset()
在问题中寻找。我不知道为什么有这么多答案说明这isset()
是要走的路,或者为什么接受的答案也说明了这一点。
在编程中意识到 null 是很重要的。我不知道为什么决定isset()
如果值为 null 则返回 false。
要检查变量是否未定义,您必须使用get_defined_vars()
. 没有等同于 JavaScript 的 undefined (这是问题中显示的内容,那里没有使用 jQuery)。
在下面的示例中,它的工作方式与 JavaScript 的未定义检查相同。
$isset = isset($variable);
var_dump($isset); // false
Run Code Online (Sandbox Code Playgroud)
但是在这个例子中,它不会像 JavaScript 的 undefined 检查那样工作。
$variable = null;
$isset = isset($variable);
var_dump($isset); // false
Run Code Online (Sandbox Code Playgroud)
$variable
被定义为空,但isset()
调用仍然失败。
Usingget_defined_vars()
将返回一个关联数组,键作为变量名,值作为变量值。我们isset(get_defined_vars()['variable'])
这里仍然不能使用,因为键可能存在并且值仍然为空,所以我们必须使用array_key_exists('variable', get_defined_vars())
.
$variable = null;
$isset = array_key_exists('variable', get_defined_vars());
var_dump($isset); // true
$isset = array_key_exists('otherVariable', get_defined_vars());
var_dump($isset); // false
Run Code Online (Sandbox Code Playgroud)
但是,如果您发现在您的代码中必须检查变量是否已定义,那么您可能做错了什么。这是我个人的信念,即为什么核心 PHP 开发人员isset()
在某些内容为 null 时会返回 false。
要检查是否设置了变量,您需要使用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 />';
}
Run Code Online (Sandbox Code Playgroud)
此代码将打印:
isset true
isset false
Run Code Online (Sandbox Code Playgroud)
在https://php.net/manual/en/function.isset.php中阅读更多内容
小智 6
您可以使用 -
三元运算符检查 POST/GET 设置的值是否是这样的
$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'] : '';
Run Code Online (Sandbox Code Playgroud)
您可以使用 PHP isset()函数来测试变量是否已设置。如果测试已设置为 NULL 的变量,isset() 将返回FALSE 。例子:
<?php
$var1 = '';
if(isset($var1)){
echo 'This line is printed, because the $var1 is set.';
}
?>
Run Code Online (Sandbox Code Playgroud)
此代码将输出“此行已打印,因为 $var1 已设置。”
阅读更多内容https://stackhowto.com/how-to-check-if-a-variable-is-undefined-in-php/
归档时间: |
|
查看次数: |
180004 次 |
最近记录: |