Chinaunix首页 | 论坛 | 博客
  • 博客访问: 439556
  • 博文数量: 101
  • 博客积分: 578
  • 博客等级: 中士
  • 技术积分: 872
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-12 22:24
文章分类

全部博文(101)

文章存档

2015年(1)

2014年(83)

2012年(17)

我的朋友

分类: Python/Ruby

2012-05-25 11:49:00

empty

empty是语句

如果 变量 是非空或非零的值,则 empty() 返回 FALSE。换句话说,""、0、"0"、NULLFALSE、array()、var $var、未定义; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE

isset

isset是语句, 和echo, print一样, 是PHP本身的一种语言结构.

如果 变量 存在(非NULL)则返回 TRUE,否则返回 FALSE(包括未定义)。变量值设置为:null,返回也是false;unset一个变量后,变量被取消了。注意,isset对于NULL值变量,特殊处理。 ]

Is_null

is_null是函数

检测变量是否是null,它的值是null,或未定义返回TRUE . 其它都返回 FALSE

xxx === null 等价于is_null 且速度比is_null快!

对照表:

 变量   empty   is_null   isset
 $a=””  true  false  true
 a=null  true   true  false
 var $a  true   true  false
 $a=array()  true   false  true
 $a=false  true   false  true
 $a=15  false   false  false 
 $a=1  false   false  true
 $a=0  true   false  true
 $a=”0”  true   false  true
 $a=”true”  false   false  true
 a=”false”  false   false  true

 从中我们可以发现只要变量是否为" "、0、"0"、array()、false、null,只要是这些值empty都会返回true,而isset是判断变量是否存在,只要你这个变量不是 null或未赋值,返回结果都是true,而is_null正好是isset的反结果。

ini_set('default_charset', "utf-8");
$a = NULL;

if(isset($a)){
 echo 'a已定义
';
}else{
 echo 'a未定义
';
}

if($b === NULL){
 echo 'b值为null
';
}else{
 echo 'b值不为null
';
}

if(empty($a)){
 echo 'a值为null
';
}else{
 echo 'a值不为null
';
}

结果:

a未定义
b值为null
a值为null

疑问:怎么样判断一个变量被定义了,并且值为NULL呢?

通过上面比较,估计大家与我一样,会有这个问题浮现在脑海里面。 检测一个变量是否是null 可以用:is_null,但如果变量未定义用它检测会出错。因此,我们想到,检测变量是否定义可以用:isset,但是如果一个变量值是:null, 则它会返回false . 哈哈,这个问题怎么样解决呢?等待大家分享……

 function checkNull($a)
{
if(array_key_exists($a,$GLOBALS))
{
global $$a;
if(is_null($$a))
return true;
}
return  false;
}
$test=null;
var_dump(checkNull("test"));
var_dump(checkNull("test1"));


阅读(902) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~