php中null、false、0、''、'0'、'null'、array()、array(array())的比较

八种数据类型

四种标量类型

string(字符串)、int(整型)、float(浮点型也叫double)、bool(布尔型)

两种复合类型

array(数组)、object(对象)

两种特殊类型

resource(资源)、NULL(空)

<?php 
$a1 = null;
$a2 = false;
$a3 = 0;
$a4 = '';
$a5 = '0';
$a6 = 'null';
$a7 = array();
$a8 = array(array());
echo "<pre/>";
echo "<h4>数据类型比较</h4>";
var_dump($a1);//NULL
var_dump($a2);//bool(false)
var_dump($a3);//int(0)
var_dump($a4);//string ''
var_dump($a5);//string 0
var_dump($a6);//stribng 'null'
var_dump($a7);//array()
var_dump($a8);//array(array())
echo "<hr/>";

echo "<h4>empty比较</h4>";
var_dump(empty($a1));//boll(true)
var_dump(empty($a2));//boll(true)
var_dump(empty($a3));//boll(true)
var_dump(empty($a4));//boll(true)
var_dump(empty($a5));//boll(true)
var_dump(empty($a6));//boll(false)
var_dump(empty($a7));//boll(true)
var_dump(empty($a8));//boll(false)

echo "<hr/>";
echo "<h4>isset比较</h4>";
var_dump(isset($a1));//boll(false)
var_dump(isset($a2));//boll(true)
var_dump(isset($a3));//boll(true)
var_dump(isset($a4));//boll(true)
var_dump(isset($a5));//boll(true)
var_dump(isset($a6));//boll(true)
var_dump(isset($a7));//boll(true)
var_dump(isset($a8));//boll(true)

empty()函数用来检测变量是否为空 

若变量一存在 非空字符串或者非零返回false反之为true,这里有一个坑就是0字符串返回的也是true,其实我们判断为空可以if($a=='')

isset()函数检测变量是否设置

若变量不存在返回false反之为true

null不存在是因为php底层的zval空间里没有存放其value值职存储了一个type标志(所以empty(null)为true、isset(null)为false、iseet(‘’)为true)

其它存在是因为php底层开辟了zval空间存储同时存在value,type

拾染博客

拾染博客
请先登录后发表评论
  • 最新评论
  • 总共0条评论