***PHP中empty()和isset()的区别

简介: 对于初学php的人来说,empty()和和isset()用法的区别是很难搞清楚的,他们的用法的差别不仔细去琢磨的话确实很难弄清楚。 先说一下他们的共同点: 都可以判定一个变量是否为空; 都返回boolean类型,即true或false。

对于初学php的人来说,empty()和和isset()用法的区别是很难搞清楚的,他们的用法的差别不仔细去琢磨的话确实很难弄清楚。

先说一下他们的共同点:

  1. 都可以判定一个变量是否为空;

  2. 都返回boolean类型,即true或false。

下面具体说一下他们用法之间的区别:

  1. isset()用来检测变量是否设置,只能用于变量,因为传递任何其它参数都将造成解析错误。若想检测常量是否已设置,可使用 defined() 函数。如果已经使用 unset() 释放了一个变量之后,它将不再是 isset()。若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE。(注意的是一个 NULL 字节("\0")并不等同于 PHP 的 NULL 常数)

  2. empty()用来检查一个变量是否为空。

  3. 他们之间最大的区别就是对于0的判断,若用empty判断会认为是空,用isset则认为不为空,举个例子:

    <?php

          var $a=0;

           //empty($a)返回true

           if(empty($a)){

                 echo "判断结果是空"

           }

          //isset($a)返回true

           if(isset($a)){

                 echo "判断结果不是空"

           }

       ?>

-----------------------------------------------------------------------------

isset查看一个变量是否已经被设置并且不为空(Determine if a variable is set and is not NULL)

empty查看一个变量是否为空 ""、0、"0"、NULL、FALSE、array()、$var($var是一个没有赋值的变量)

另外需要注意的是从PHP5.5开始,empty()只能支持变量,其他任何东西传递进来都将会导致介解析错误。

换句话说,像下面的这个表达式将不再凑效empty(trim($name))。我们应该用trim($name) == false来代替它来做判断

上面代码的执行结果

如何联系我:【万里虎】www.bravetiger.cn 【QQ】3396726884 (咨询问题100元起,帮助解决问题500元起) 【博客】http://www.cnblogs.com/kenshinobiy/
目录
相关文章
|
3月前
|
PHP
PHP &&是什么,||是什么,&&和||有什么区别?
PHP &&是什么,||是什么,&&和||有什么区别?
20 1
|
4月前
|
PHP
PHP public、protected、private、static、abstract、final、interface、implements 区别对比
PHP public、protected、private、static、abstract、final、interface、implements 区别对比
52 0
|
PHP
PHP - Laravel Blade模板注释 {{-- 注释 --}} 与 <!-- 注释 --> 的区别
PHP - Laravel Blade模板注释 {{-- 注释 --}} 与 <!-- 注释 --> 的区别
83 0
|
4月前
|
PHP 调度
PHP CGI、FastCGI、PHP-FPM、PHP-CGI 区别
PHP CGI、FastCGI、PHP-FPM、PHP-CGI 区别
45 5
|
机器学习/深度学习 安全 Java
PHP, Python和Java的区别
PHP, Python和Java是广泛使用的编程语言。每种编程语言都有其独特的优点和缺点。在本文中,我们将对这些编程语言进行分析,并探讨它们在不同应用场景中的最佳用途。
126 0
|
9月前
|
PHP Python
总是忘了isset与empty的区别-php随记
@(狂汗)都是5个单词,不能从字数上编口诀.... isset 判断变量是否已存在,如果变量存在则返回 TRUE,否则返回 FALSE。
31 0
|
9月前
|
PHP
php中elseif 和else if的区别
@(黑线)以前貌似看到if这里,就直接跳了,可是今天再读文档,又发现了点东西... @(乖)可能你已经知道了php存在elseif 和else if,保留了c的风格。
48 0
|
数据处理 PHP
PHP面向对象和面向过程的区别
PHP面向对象和面向过程的区别
61 0
下一篇
云函数