先说一下,php认为false的是什么 '' 0 false array() object() null
- empty(): 应用于 array() '' 0 false null 未声明变量 '0';1 <?php
2 class abc {
3 public $name = 'song';
4 public $age = '';
5 public $sex = 0;
6 public $null = '0';
7 public function test()
8 {
9 return $this->name;
10 }
11 }
12 $a = new abc();
13 //empty();
14 if (empty($a->name))
15 {
16 echo 'is false';
17 }
18 else
19 {
20 echo 'is not false';
21
22 }
- isset():判断这个变量是否判断,只要声明了就会为true1 <?php
2 class abc {
3 public $name = 'song';
4 public $age = '';
5 public $sex = 0;
6 public $null = '0';
7 public function test()
8 {
9 return $this->name;
10 }
11 }
12 $a = new abc();
13 //empty();
14 if (!isset($a->name))
15 {
16 echo 'is false';
17 }
18 else
19 {
20 echo 'is not false';
21
22 }
- is_null():判断变量是否为null
- if ($a){}
- 那这个未声明变量会报notice
- 和empty效果是一样的,但是他会报错啊。
- 有的时候我们不想过滤0或者'0'的时候我们就要写$num != ''
总结:当我们去判断数组或者对象某个元素或成员属性是否为空,我们应该用empty去判断,
判断变量或者数组元素是否存在key或者对象是否存在成员属性应用用isset
当变量可以为0时,一般是用户输入的数字,那我们就用 $a != '';这样去写
到于那个在if($a)这种写法,不太推荐,除非这个变量在前面已经声明。