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

时间: 2024-08-05 16:46:27

php的is_null+empty+isset+unset的相关文章

php empty,isset,is_null判断比较(差异与异同)

php empty,isset,is_null判断比较(差异与异同) 作者: 字体:[增加 减小] 类型:转载 做php开发时候,想必在使用:empty,isset,is_null 这几个函数时候,遇到一些问题.甚至给自己的程序带来一些安全隐患的bug.很多时候,对于isset,empty都认为差不多.因此开发时候,就没有注意,一段作为流程判断时候,就出现bug问题了. 一.举例说明 A.一个变量没有定义,我们该怎么样去判断呢 复制代码代码如下: <?php #不存在$test 变量 $isse

PHP empty(),isset()与is_null()的实例测试

有关 PHP 的 empty(),isset() 还有 is_null() 这三个函数的用法讨论得已经很多了,而且很多资料也未必能说得很清楚.这里再重复一次,但不是从概念去说,直接用程序例子来说话,应该记忆会比较深刻些.永盈会娱乐城 测试的类型如下: view source print? 01 <?php 02   03 $a; 04 $b = false; 05 $c = ''; 06 $d = 0; 07 $e = null; 08 $f = array(); 09   10 ?> emp

PHP empty(),isset()与is_null()的实例测试(转载)

有关 PHP 的 empty(),isset() 还有 is_null() 这三个函数的用法讨论得已经很多了,而且很多资料也未必能说得很清楚.这里再重复一次,但不是从概念去说,直接用程序例子来说话,应该记忆会比较深刻些. 测试的类型如下: <?php $a; $b = false; $c = ''; $d = 0; $e = null; $f = array(); ?> empty() 首先是empty的var_dump输出: var_dump(empty($a)); var_dump(emp

php empty isset is_null

总是忘记这些变量的区别,参考下http://www.jb51.net/article/38020.htm,记录下 设置几个变量 <?php $a; $b = false; $c = ''; $d = 0; $e = null; $f = array(); ?> 首先是empty的var_dump输出: <?php var_dump(empty($a)); var_dump(empty($b)); var_dump(empty($c)); var_dump(empty($d)); var_

empty(),isset()与is_null()的实例测试

有关 PHP 的 empty(),isset() 还有 is_null() 这三个函数的用法讨论得已经很多了,而且很多资料也未必能说得很清楚.这里再重复一次,但不是从概念去说,直接用程序例子来说话,应该记忆会比较深刻些. 测试的类型如下: 01 <?php 02   03 $a; 04 $b = false; 05 $c = ''; 06 $d = 0; 07 $e = null; 08 $f = array(); 09   10 ?> empty() 首先是empty的var_dump输出:

empty() isset() isnull() 比较

有关 PHP 的 empty(),isset() 还有 is_null() 这三个函数的用法讨论得已经很多了,而且很多资料也未必能说得很清楚.这里再重复一次,但不是从概念去说,直接用程序例子来说话,应该记忆会比较深刻些. 测试的类型如下: ? 1 2 3 4 5 6 7 8 9 10 <?php $a; $b = false; $c = ''; $d = 0; $e = null; $f = array(); ?> empty() 首先是empty的var_dump输出: ? 1 2 3 4

PHP:empty,isset,is_null,array(0),array(),array(&quot;&quot;),0,&quot;0&quot;,&quot;&quot;,&quot;null&quot;,NULL的总结

通过下面这个程序来检测 $a=0; if(empty($a)){ echo "yes|"; }else{ echo "no|"; } if(isset($a)){ echo "yes|"; }else{ echo "no|"; } if(is_null($a)){ echo "yes|"; }else{ echo "no|"; } if($a){ echo "yes|"

PHP的isset(),is_null,empty()你了解了没?

这几个变量判断函数在PHP开发中用的其实挺多的,而且粗看上去都差不多,但其实还是有不少的区别的,如果搞不清楚,也许就会遗留一些潜在的bug, 包括我自已也遇到过这样的坑,比如有一次我就遇到过用empty判断出现的问题,前端是允许输入0的,但是我用empty判断的话就为真,我就直接给报错了,所以这里就不能用这个判断了. 我们先看下这几个函数具体的用途 isset - 检测变量是否已设置并且非 NULL empty - 检查一个变量是否为空,以下的东西都被认作空 "" (空字符串) 0 (

isset() unset()

检测变量是否设置,并且不是 NULL. 如果已经使用 unset() 释放了一个变量之后,它将不再是 isset().若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE. <?php $var = ''; // 结果为 TRUE,所以后边的文本将被打印出来. if (isset($var)) { echo "This var is set so I will print."; } unset() 销毁指定的变量. unset() 在函数中的行为会依赖于