<?php $a = array( 'a' =>1, 'b' =>0, 'c' =>NULL);
echo 'a test by empty: ' , empty($a[ 'a' ]) ? 'not exist' : 'exist' , PHP_EOL;
echo 'a test by isset: ' , isset($a[ 'a' ]) ? 'exist' : 'not exist' , PHP_EOL;
echo 'a test by array_key_exists: ' , array_key_exists( 'a' , $a) ? 'exist' : 'not exist' , PHP_EOL, PHP_EOL;
echo 'b test by empty: ' , empty($a[ 'b' ]) ? 'not exist' : 'exist' , PHP_EOL;
echo 'b test by isset: ' , isset($a[ 'b' ]) ? 'exist' : 'not exist' , PHP_EOL;
echo 'b test by array_key_exists: ' , array_key_exists( 'b' , $a) ? 'exist' : 'not exist' , PHP_EOL, PHP_EOL;
echo 'c test by empty: ' , empty($a[ 'c' ]) ? 'not exist' : 'exist' , PHP_EOL;
echo 'c test by isset: ' , isset($a[ 'c' ]) ? 'exist' : 'not exist' , PHP_EOL;
echo 'c test by array_key_exists: ' , array_key_exists( 'c' , $a) ? 'exist' : 'not exist' , PHP_EOL, PHP_EOL;
?>
|
输出结果如下:
========================================================
a test by empty: exist
a test by isset: exist
a test by array_key_exists: exist
b test by empty: not exist
b test by isset: exist
b test by array_key_exists: exist
c test by empty: not exist
c test by isset: not exist
c test by array_key_exists: exist
========================================================
注意红色高亮部分
三种方式的语法区别
- empty: 参数为0或为NULL时(如上面列子),empty均返回TRUE,
- isset: 参数为NULL时,返回FALSE,0与NULL在PHP中是有区别的,isset(0)返回TRUE
- array_key_exists: 纯粹的判断数组键值对是否存在,无论值是多少
所以,从准确性的角度来看,array_key_exists是最准确的!
声明:此博文是摘抄他人文章,旨在方便查找,学习使用,