PHP测试空和/或null和/或unset数组

时间:2012-10-28 05:03:45

标签: php codeigniter logic

我想保持这个简短。我不知道我的术语是否正确,但我从 Codeigniter手册Vol.1 中得到了这个例子。

if (count($args) > 1 || is_array($args[0]))

我多次遇到这个问题。根据数据类型,不同的测试更合适。有些测试会以意想不到的方式失败。

如何确定最合适,最可能最简洁的测试?

要明确我正在寻找一种最有效的方法来测试一个对象/变量是否可以使用,无论数据类型如何,如果可能的话。

此外,我不希望该解决方案仅适用于示例中的列表。它应该是广泛适用的。

3 个答案:

答案 0 :(得分:6)

只需使用empty

即可
if(!empty($args)){
  echo 'Array is set, not empty and not null';
}

答案 1 :(得分:1)

使用empty()bool empty ( mixed $var )

http://www.php.net/manual/en/function.empty.php

确定变量是否为空。如果变量不存在或者其值等于FALSE,则该变量被视为空。如果变量不存在,empty()不会生成警告。

答案 2 :(得分:0)

我一直在使用以下功能。

您可以为所有可能的变量类型添加自己的测试。

function is_valid_var($var)
{
  if ( isset( $var ) ) {

    // string
    if ( is_string( $var ) && strlen( $var ) == 0 ) return false;

    // array
    elseif ( is_array( $var ) && count( $var ) == 0 ) return false;

    // unknown
    else return true;
  }

  return false;
}