既然PHP是一种动态语言,那么检查所提供字段是否为空的最佳方法是什么?

我要确保:

Null被认为是空字符串 只有空格的字符串被认为是空的 那个“0”不是空的

这是我目前得到的:

$question = trim($_POST['question']);

if ("" === "$question") {
    // Handle error here
}

一定有更简单的方法吧?


当前回答

用这个:

// check for null or empty
if (empty($var)) {
    ...
}
else {
    ...
}

其他回答

// Function for basic field validation (present and neither empty nor only white space
function IsNullOrEmptyString($str){
    return ($str === null || trim($str) === '');
}

Empty()曾经为此工作,但Empty()的行为已经改变了几次。与往常一样,php文档始终是准确行为的最佳来源,这些页面上的注释通常提供了随时间变化的良好历史记录。如果你想检查对象属性的缺乏,目前一个非常防御性的方法是:

if (is_object($theObject) && (count(get_object_vars($theObject)) > 0)) {

如果我错了,我会谦虚地接受,但我在自己的一端进行了测试,发现下面的代码可以用于测试字符串(0)""和NULL值变量:

if ( $question ) {
  // Handle success here
}

这也可以反过来测试是否成功:

if ( !$question ) {
  // Handle error here
}

用这个:

// check for null or empty
if (empty($var)) {
    ...
}
else {
    ...
}

当您希望检查字段是否提供了值时,该字段可能是字符串、数组或未定义的。所以,以下内容就足够了

function isSet($param)
{
    return (is_array($param) && count($param)) || trim($param) !== '';
}