最近有一个小问题,就是如何在php中检查一个变量是否被设置并且值为null,看看大家都有什么好的解决方案?谢谢~~
你的意思时这个变量是否有初始化?如果你判断不清的话,在最开始的时候直接做一个初始化不就好了么?然后初始化成什么,你就判断什么。
我觉得 你前提是要知道有这么一个变量 或者变量的名称,,才行啊
判断它是不是等于null
用isset来做!
<?php
//$x 待检测变量
if(isset($x) && $x!=''){
//这里面写条件成立时你的代码就行了
}
?>
用isset函数就可以来判断
is__null :只有一个变量定义了,且它的值是null,才返回true,如果变量未定义会报错
$var = null;
var_dump(is_null($var)); //返回true
$var = '';
var_dump(is_null($var)); //返回false
如果$var未设置,返回true,但是会报一个notice的错误
<?php
//变量 $path
//是否设置
if(isset($path))
{
//设置了 内容是否为null
if(is_null($path))
{
echo '变量 $path 设置了,而且内容为 NULL';
}
else
{
echo '变量 $path 设置了, 但是内容不为 NULL';
}
}
else
{
echo '变量 $path 没有设置';
}
?>
额,我觉得问题本身好像都有问题吧,如果没有变量何来null???
一:变量设置了,值为null
二、变量设置了,值部位null
三:变量没设置,没有值不值的说法
综上:问题本身貌似存在矛盾。
isset函数是检测变量是否设置。
格式:bool isset ( mixed var [, mixed var [, ...]] )
返回值:
若变量不存在则返回 FALSE
若变量存在且其值为NULL,也返回 FALSE
若变量存在且值不为NULL,则返回 TURE
同时检查多个变量时,每个单项都符合上一条要求时才返回 TRUE,否则结果为 FALSE
如果已经使用 unset() 释放了一个变量之后,它将不再是 isset()。若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE。同时要注意的是一个 NULL 字节("\0")并不等同于 PHP 的 NULL 常数。
警告: isset() 只能用于变量,因为传递任何其它参数都将造成解析错误。若想检测常量是否已设置,可使用 defined() 函数。
if(isset($_COOKIE["myuid"]) && isset($_COOKIE['passwd'])){
include("action/db.php");
$q=mssql_query("PLAT_LoginByUID @UID='".$_COOKIE["myuid"]."',@Pwd='".$_COOKIE["passwd"]."'");
$row=mssql_fetch_array($q);
//print_r($row);
if($row['UserID']!=0){
header("Location:/index2.php");
exit();
}
}
<?php
isset($x);
?>