我正在研究PHP,今天我遇到了一个字符串null的问题。我试图用GOOGLE验证太多东西,但没有成功。所以我来这里澄清。
我得到了$var1 = "null"
为了验证上述原因,我尝试了以下方法。
$null = is_null($var1);
if($null){
$var1 = null;
}
if($var1 === null){
$var1 = null;
}
if($var1 === "null"){
$var1 = null;
}
但上述方式并不成功。如何验证$var1 = "null"
?
答案 0 :(得分:2)
您可以通过多种方式进行验证:
is_null(mixed $var)
isset(mixed $var)
empty(mixed $var)
==
,===
或!=
你可以使用php变量处理函数is_null(mixed $var)
,如果var null ,则返回 TRUE ,否则 FALSE 。
<?php
$foo = NULL;
$bar = 'NULL';
var_dump(is_null($foo), is_null($bar));
?>
<强>输出强>
bool(true) bool(false)
正如您所看到的,$bar = 'NULL'
和$bar = NULL
两者都是不同的。实际上在一个用字符串初始化而不是NULL。
如果 var 存在,则返回 TRUE ,并且其值不是 NULL , FALSE 。
注意强>
isset()
仅适用于变量,因为传递任何其他内容都会导致解析错误。要检查是否设置了常量,请使用defined()函数。
<?php
$foo = NULL;
$bar = 'NULL';
var_dump(isset($foo), isset($bar));
?>
<强>输出强>
bool(false) bool(true)
如果var存在并且具有非空的非零值,则返回 FALSE 。否则返回 TRUE 。
<?php
$foo = NULL;
$bar = 'NULL';
var_dump(empty($foo), empty($bar));
?>
<强>输出强>
bool(true) bool(false)
==
或===
或!=
您可以使用比较运算符==
,===
或!=
来检查变量是否为空。
<?php
$foo = NULL;
$bar = 'NULL';
// Using == operator
echo "Using '==' operator\n";
if($foo == NULL)
echo "foo is NULL\n";
else
echo "foo is not NULL\n";
if($bar == NULL)
echo "bar is NULL\n";
else
echo "bar is not NULL\n";
// Using === operator
echo "\nUsing '===' operator\n";
if($foo === NULL)
echo "foo is NULL\n";
else
echo "foo is not NULL\n";
if($bar === NULL)
echo "bar is NULL\n";
else
echo "bar is not NULL\n";
?>
<强>输出强>
Using '==' operator
foo is NULL
bar is not NULL
Using '===' operator
foo is NULL
bar is not NULL
==
和===
之间的唯一区别是==
只是检查左右值是否相等。但是,===
运算符(注意额外的“=”)实际检查左边和右边的值是否相等,并检查它们是否属于相同的变量类型(比如它们是否都是布尔值) ,英特尔等。)。
答案 1 :(得分:1)
您正在混合变量类型,我想您想要比较null值,但是您将var设置为:
$var1 = "null";
这是一个字符串。在这种情况下,您的第三次尝试正常工作:
if($var1 === "null"){
$var1 = null;
}
它使用相同的运算符(相同类型,相同的值),并且值相同,它将变量设置为NULL。
如果您希望is_null函数有效,请将$var1
设置为null
:
$var1 = null;
if(is_null($var1)){
// ok now we are here
}
请记住,is_null()
返回一个布尔值,以便您可以将其内联到if语句中。
答案 2 :(得分:1)
这里是A more detail answer,但是如果您要处理
,我想补充一下。
如果处理
,先将其替换为str_replace()
,然后使用empty()
进行检查,则可以使用
empty(str_replace(" " ,"" , $YOUR_DATA)) ? $YOUR_DATA = '--' : $YOUR_DATA;
答案 3 :(得分:1)
以我的方式
function expDate($getDate) {
if(is_null($getDate)){
return null;
}else{
$dob = $getDate;
$result= explode('-',$dob);
$date= $result[2];
$month= $result[1];
$year= $result[0];
return $date.'-'.$month.'-'.$year;
}
}