在实际测试中php读取json数组时 使用简单的 if 或者 array_key_exists 去判断对象是否存在是会报错的,以下是google搜寻的正确判断方法
实际上出现报错只是我对php还不是很精通 因此可能我认为正确的判断方法同样不是最完美的解决方法甚至是错误的 此篇博文留作自用
错误代码:
1
2
3
4
|
$structure = imap_fetchstructure( $connection , $id , FT_UID); if ( array_key_exists ( 'parts' , $structure )) { } |
会出现报错 Warning: array_key_exists() expects parameter 2 to be array, boolean given
正确的解决方案是:
1
|
if ( is_array ( $structure ) && array_key_exists ( 'parts' , $structure )) { //...magic stuff here } |
而还有一种就是使用 isset 来直接判断:
1
2
3
4
5
|
if (isset( $structure [ 'parts' ])) { } //这个函数用来测试变量是否已经配置。若变量已存在则返回 true 值。其它情形返回 false 值。 //因此需要若变量存在且值不为NULL,才返回 TURE |
以上所述是小编给大家介绍的PHP判断JSON对象是否存在的方法(推荐),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!