【问题标题】:PHP - Checking if array index exist or is nullPHP - 检查数组索引是否存在或为空
【发布时间】:2013-02-24 22:58:59
【问题描述】:

有没有办法检查数组索引是否存在或为空isset() 不会告诉您索引是不存在还是存在但为空。 如果我这样做:isset($array[$index]) || is_null($array[$index]) 它不会工作,因为如果索引不存在 is_null 会崩溃。

请问我该如何检查?还有一种方法可以只检查某些东西是否存在,无论它是否设置为 null?

【问题讨论】:

  • 嵌套 if 结构中的 if 语句不能正常工作吗?
  • "array_key_exists 肯定可以解决问题。"这就是答案..好.. +1 给你
  • 您应该回答这个问题,然后将其标记为已解决。否则它看起来总是一个悬而未决的问题。
  • 两天前无法接受自己的回答^^

标签: php arrays null indexing isset


【解决方案1】:

函数array_key_exists() 可以做到这一点,property_exists() 用于对象,加上 Vineet1982 所​​说的。感谢您的帮助。

【讨论】:

  • 不推荐在对象上使用 array_key_exists()。
  • @Asish 没有人说应该这样做。这个问题已经有 8 年历史了,所以很明显事情会发生变化。
  • 是的。这就是我提到它的原因。在我的情况下它不起作用。所以,..
【解决方案2】:

这是一个很好的问题,你可以使用 get_defined_vars() 来解决这个问题:

$foo = NULL;
$a = get_defined_vars();

if (array_key_exists('def', $a)) {
   // Should evaluate to FALSE
 }; 

if (array_key_exists('foo', $a)) {
   // Should evaluate to TRUE
};

这会解决你的问题

【讨论】:

  • 好的,然后在其中添加 array_key_exist 东西
【解决方案3】:

最简单的定义在: http://php.net/manual/en/function.array-key-exists.php

<?php
$array=array('raja'=>'value', 'john'=>'value2');
$var='raja';
echo array_key_exists($var, $array);
?>

【讨论】:

    猜你喜欢
    • 2012-07-29
    • 1970-01-01
    • 2010-09-20
    • 1970-01-01
    • 2022-10-20
    • 2011-11-04
    • 2011-07-31
    相关资源
    最近更新 更多