<?php
$a = "";
if(empty($x)){
echo "空";
}else{
echo "不空";
}
var_dump($a);
?>
输出结果为 空 string(0) ""
例如"", 0, 0.0, "0", NULL,array(); 以及没有任何属性的对象都将被认为空 那么就会返回TRUE
但是当里边是空格时,则不为空。
应用:判断id是否在数组中
方法一 empty【推荐】empty可替换为isset,注意需要在isset前加取反符!
$arr = array(
"aaa"=>"q84hWgs",
"bbb"=>"lc6kmg4",
);
if (empty($arr[$id]))
{
die('incorrect id !!!');
}
方法二(array_key_exists函数检查键名是否存在)
$arr= array(
"aaa"=>"q84hWgs",
"bbb"=>"lc6kmg4",
);
if (!(array_key_exists("$id",$arr)))
{
die('incorrect id !!!');
}
方法三 empty empty可替换为isset,注意需要在isset前加取反符!
判断指定id的键是否存在,后边可以用到$arr[$id]
$id的值从0开始,然后1、2、3····
比如下边id=0对应的是666,id=2对应的是888,id=3就没有对应值了
$arr=array('666','777','888');
if (empty($arr[$id]))
{
die('incorrect id !!!');
}
或
判断指定id是否在arr中,简单的判断,后边不用$arr[$id] in_array速度慢些
$arr=array('666','777','888');
if (!in_array("$id", $arr, true))
{
die('incorrect id !!!');
}
备注:速度比较
isset = empty
empty = 4倍array_key_exist
array_key_exist = 几十倍 in_array
经过实际性能对比,在数据量不大的时候,比如小于1000,查找用哪一种都行,都不会成为性能上的瓶颈。但当数据量比较大的时候,用 array_key_exists 比较合适。据测试 array_key_exist 要比 in_array 效率高十几甚至几十倍。