php中array_key,PHP中array_key_exists()与isset()以及??的区别

PHP中array_key_exists用于检查某个键名是否存在于数组中,而isset也可以用于检测数组中某个键名是否存在,那么二者有什么区别呢?

一个基本的区别是isset()可用于数组和变量,而array_key_exits()只能用于数组。

但是最主要的区别在于在设定的条件下的返回值。现在我们来验证一下这个最主要的区别。

array_key_exists()

array_key_exists() 会检查键值的存在. 这个函数会返回TRUE,只要键值存在,即使值为NULL.

$arr = array( "one"=>"1", "two"=>"2", "three"=>null );

array_key_exists("one", $arr);// true

array_key_exists("two", $arr);// true

array_key_exists("three", $arr);// true

isset()

isset()和arrry_key_exitst()不同,isset()会同时检查键和值,只有当健存在,对应的变量不为NUll的时候才会返回TURE。

$arr = array( "one"=>"1", "two"=>"2", "three"=>null );

isset($arr["one"]);// true

isset($arr["two"]);// true

isset($arr["three"]);// false

//补充一下isset的方法

$arr1 = [];

if(isset($arr1)){

echo '存在数组


';

}else{

echo '不存在数组


';

}

//结果:存在数组

$arr1 = ['a'=>'AAA','b'=>null];

if(isset($arr1['b'])){

echo '存在数组子项


';

}else{

echo '不存在数组子项


';

}

//结果:不存在数组子项

在PHP7中可以使用??(双问号),得到的情况和isset基本一致

$arr = array( "one"=>"1", "two"=>"2", "three"=>null );

$flag = $arr["one"] ?? '不存在';// 1

$flag = $arr["two"] ?? '不存在';// 2

$flag = $arr["three"] ?? '不存在';// 不存在

判断一个值的时候还是需要谨慎,细节地方可能隐藏着看不见的bug.

凭你的智慧,我很难跟你解释!——周星驰

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值