php的is_null+empty+isset+unset

 

empty,isset首先都会检查变量是否存在,然后对变量值进行检测。而is_null 只是直接检查变量值,是否为null,因此如果变量未定义就会出现错误!

以后:

检测一个变量是否是null 用:is_null,但如果变量未定义用它检测会出错。//判断null用is_null(),如果变量未定义,则报错

检测变量是否定义可以用:isset  ,但是如果一个变量值是:null, 则它会返回false . //判断变量是否定义,用isset,如果变量值是null则返回false

empty 与 isset区别 

  1、对待$c = null,的处理上 isset 返回false,empty 返回true

 

 

 unset是直接删除变量

$a="hello";
$b= $a;
// echo $b.‘sss‘.$a; // echo hello
unset($b);
echo $b;  //unset 是去掉变量定义,所以输出会报错

 

变量相互赋值:

  

//变量相互赋值
$a="hello";
$b= $a;
echo $b.‘sss‘.$a; // echo hello
$a = "world";
echo $b.$a;   //输出 hello world 说明变量相互赋值是 拷贝一个副本
unset($b);
echo $b;  //unset 是去掉变量定义,所以输出会报错

//对象相互赋值
class A{
    public $num=100; 
}
$a = new A();
$b = $a; //指向同一个对象
$a->num=200;
echo $b->num;  //输出200

 

  综述:变量相互赋值,是拷贝副本。如果变量是对象,相互赋值是指向同一个对象

 

相关链接:

  http://www.cnblogs.com/chengmo/archive/2010/10/18/1854258.html

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。