在PHP中检查条件中的空值

时间:2013-03-28 15:57:27

标签: php variables

我发现有多种方法可以检查函数是否正确地将值返回给变量,例如:

示例I

$somevariable = '';

$somevariable = get_somevariable();

if ($somevariable)
{
    // Do something because $somevariable is definitely not null or empty!
}

实施例II

$somevariable = '';

$somevariable = get_somevariable();

if ($somevariable <> '')
{
    // Do something because $somevariable is definitely not null or empty!
}

我的问题:检查变量是否正确的最佳做法是什么?对于不同类型的物体,它会有所不同吗?例如,如果您希望$ somevariable为数字,那么检查它是否为空字符串帮助/发布问题?你是什​​么设置$ somevariable = 0;作为其初始值?

我来自强烈打造的C#世界,所以我仍然试图绕过这一切。

威廉

4 个答案:

答案 0 :(得分:1)

这取决于你在寻找什么。

检查变量是否已设置:

if (isset($var))
{
 echo "Var is set";
} 

检查号码:

if (is_int($var))
{
 echo "Var is a number"; 
}

检查字符串:

if (is_string($var))
{
 echo "var is a string";
}

检查var是否包含小数位:

if (is_float($var))
{
 echo "Var is float";
}

如果您想要检查变量某种类型,请添加:!一个感叹号。示例:

if (!isset($var)) // If variable is not set
{
  echo "Var Is Not Set"; 
}

参考文献:

http://www.php.net/manual/en/function.is-int.php

http://www.php.net/manual/en/function.is-string.php

http://www.php.net/manual/en/function.is-float.php

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

答案 1 :(得分:1)

没有明确的答案,因为它取决于函数应该返回的内容,如果记录正确的话。

例如,如果函数因返回null而失败,则可以使用if (!is_null($retval))进行检查。

如果函数因返回FALSE而失败,请使用if ($retval !== FALSE)

如果函数因未返回整数值if (is_int($retval))

而失败

如果函数因返回空字符串而失败,则可以使用if (!empty($retval))

依旧......

答案 2 :(得分:1)

这取决于你的功能可能会返回什么。这种情况可以追溯到如何最好地构建功能。您应该学习一次PHP真值表并应用它们。以下所有内容都被视为 falsey

  • ''(空字符串)
  • 0
  • 0.0
  • '0'
  • null
  • false
  • array()(空数组)

其他一切都是 truthy 。如果您的函数返回上述“失败”返回代码之一以及其他任何成功,则最惯用的检查是:

if (!$value)

如果该功能可能同时返回0false(例如strpos),则需要应用更严格的检查:

if (strpos('foo', 'bar') !== false)

我总是使用最短,最易读的版本,不容易出现误报,通常为if ($var) / if (!$var)

答案 3 :(得分:0)

如果您想检查是否是数字,您应该使用filter functions

例如:

if (!filter_var($_GET['num'], FILTER_VALIDATE_INT)){
    //not a number
}