php:如何检查字段是否有空/空/ NULL值?

时间:2010-02-04 16:47:08

标签: php validation

我想在变量具有BLANK值或EMPTY或NULL值时显示错误。例如变量如下所示:

 $mo = strtotime($_POST['MondayOpen']);


    var_dump($_POST['MondayOpen'])返回string(0) "".

现在我采用下面的方法

  1. 首先想找到哪种类型的变量$mo?(字符串或 整数或其他)

  2. 哪个函数更适合找到没有价值的$mo

  3. 我使用$mo进行测试并得到了这些结果

    is_int($mo);//--Return nothing
    is_string($mo); //--Return bool(false) 
    var_dump($mo);  //--Return bool(true)                   
    var_dump(empty($mo));//--Return bool(true) 
    var_dump($mo==NULL);//--Return bool(true) 
    var_dump($mo=='');//--Return nothing
    

    请建议一种检查变量完整性的最佳方法

4 个答案:

答案 0 :(得分:4)

var_dump输出变量用于调试目的,它不用于检查普通代码中的值。 PHP是松散类型的,大多数情况下,如果你的变量是一个字符串或一个int无关紧要,尽管如果你需要确保它是一个,或者使用is_函数进行检查,你可以抛出它。

测试某些东西是否为空:

if ( empty( $mo ) ) {
  // error
}
如果变量为0,null,false或空字符串,则

empty()返回true。

答案 1 :(得分:3)

PHP提供了一个函数isset来检查变量是否不是NULLempty来检查变量是否为空。

要返回类型,可以使用PHP函数gettype

if (!isset($mo) || is_empty($mo)) {
 // $mo is either NULL or empty.
 // display error message
 }

答案 2 :(得分:3)

如果无法转换为时间戳,则执行strtotime将返回false。

$mo = strtotime($_POST['MondayOpen']);
if ($mo !== false)
{
//valid date was passed in  and $mo is type int
}
else
{
//invalid date let the user know
}

答案 3 :(得分:0)

您可以使用以下方式检查其类型:

gettype($mo);

null 是不同的东西,您可以查看这些功能:

if (empty($mo))
{
  // it is empty
}

if (is_null($mo))
{
  // it is null
}

检查变量是否已设置的另一种方法是使用 isset 构造。

if (isset($mo))
{
  // variable has been set
}