若转载教程,请注明出自SW-X框架官方文档

1、isset() 检测变量是否已创建

在PHP中,如果我们想检测一个变量(保存全局变量、超全局变量)是否已经被创建,又或者是不等于null,我们都可以使用isset()函数来进行判断。

注意:isset()函数检测等于null的变量会返回false,而检测等于''的变量则会返回true

因为在严格的数据类型中,$A=null的实际数据类型,并不等于$A=''

语法结构如下:

  1. isset(变量A, 变量B, ...);

注意:isset()函数支持一次检测一个或多个变量,若所有变量都被创建了,则返回true,若其中一个变量没被创建,则返回false

下面,我们来进行一些案例演示:

  1. <?php
  2. # 下面的结果为true
  3. $var = '';
  4. if (isset($var)) {
  5. echo '通过';
  6. }
  7. # 下面开始只注释返回结果,自己分析过程跟原因
  8. $a = "test";
  9. $b = "anothertest";
  10. var_dump(isset($a)); // true
  11. var_dump(isset($a, $b)); // true
  12. # 删除变量
  13. unset ($a);
  14. var_dump(isset($a)); // false
  15. var_dump(isset($a, $b)); // false
  16. $foo = null;
  17. var_dump(isset($foo)); // false

2、empty() 检测是否为空

在PHP中,如果我们想检测一个变量(保存全局变量、超全局变量)不等于空的情况下,我们可以使用empty()函数来进行判断。

empty()函数所认定为的情况,在PHP中有以下几个场景:

  1. empty()函数所认定为的情况,在PHP中有以下几个场景:
  2. 以下的东西被认为是空的:
  3. "" (空字符串)
  4. 0 (作为整数的0)
  5. 0.0 (作为浮点数的0)
  6. "0" (作为字符串的0)
  7. null
  8. false
  9. array() (一个空数组)
  10. $var; (一个声明了,但是没有赋值的变量)

下面我们来使用empty()isset()函数进行一个简单的对比:

  1. <?php
  2. $var = 0;
  3. # 变量为0的时候,isset()会返回true
  4. if (isset($var)) {
  5. echo '通过';
  6. }
  7. # empty()则会返回false
  8. if (empty($var) == false) {
  9. echo '未通过';
  10. }

A、isset()与empty()函数的使用场景

当我们需要判断一个变量,是否已被创建的时候,使用isset()

当我们需要判断一个变量,是否为空的时候,使用empty()empty()函数常用于判断$_GET$_POST这类型的超全局变量是否有内容提交,并做对应的内容过滤。

所以在实际开发中,empty()用的地方要比isset()函数多很多。

3、is_null() 检测是否为null类型

is_null()函数是用于判断变量是否等于null,若等于null,则返回true,否则返回false

实际上is_null()函数与isset()函数在功能上刚好相反,下面我们来进行一个简单的案例,从案例中发现他们之间的一些不同点:

  1. <?php
  2. # 检测未创建的变量,isset()会返回false,不会报错
  3. if (isset($var)) {
  4. echo '返回false';
  5. }
  6. # is_null()则会报错
  7. if (is_null($var)) {
  8. echo '我报错了';
  9. }

A、is_null()与isset()函数的区别

  1. 1isset()严格上来说是一个PHP语句,和echo是一样的,所以在运行速度上,isset()比is_null()要快2-3
  2. 2isset()判断为null会返回false,而is_null()会返回true,刚好相反
  3. 3isset()可以同时传递多个变量进行判断,而is_null()只能传递一个变量
  4. 4isset()在检测未创建的变量时会返回false,而is_null()会报错

小黄牛提醒:在即时开发中,我们就算使用 $A===null 来进行判断,也不要使用 is_null($A) 这个函数,因为is_null()函数的性能并不高,所以有经验的程序员都不会去使用。

4、is_array() 检测是否为数组

在PHP中,我们可以使用is_array()函数,检测一个变量是否为数组结构。如果是array,则返回true,否则返回false

使用案例如下:

  1. <?php
  2. $var = array();
  3. if (is_array($var)) {
  4. echo '这是一个数组';
  5. }

免费教程手写不易,希望能支持一下SW-X框架,(^.^)

GitHub有账号的朋友,也可以给我们一个小星星噢!

希望能够与大家共同培育出良好的Swoole生态,对Swoole有兴趣的朋友可以加我微信好友,进入SW-X框架官方交流群。
该群以Swoole生态发展交流为主,若出现争吵,攻击其他人等行为,立即剔除。