1

我正在 php 中构建一些简单的验证规则,而我的 IDE (phped) 抱怨语法。

谁能告诉我以下有什么问题?

function notBlank($str) {
    (strlen($str) == 0) ? return false : return true;
}

phped 抱怨“意外回报”

任何建议表示赞赏。

谢谢。

4

5 回答 5

13

像这样写:

function notBlank($str){
   return strlen($str) != 0;
}
于 2009-10-26T19:11:05.673 回答
2

像这样写:

function notBlank($str) {
    return ( strlen($str) == 0 ? false : true );
}
于 2009-10-26T19:11:36.250 回答
2

您不能在三元运算符中使用 return。如果要保留该语法,则必须执行以下操作:

function notBlank($str = '') {
    $var = (strlen($str) == 0) ? false : true;
    return $var;
}

尽管如此,请注意默认的做事方式更清晰:

function notBlank($str = '') {
    if(strlen($str) == 0)
        return false;
    else
        return true;
}

希望能帮助到你!

于 2009-10-26T19:21:08.417 回答
1

GSto 的答案在这里似乎是最好的,尽管您可能还想查看 php 的empty函数:

http://www.php.net/empty

于 2009-10-26T21:01:40.850 回答
0

strlen()当字符串为空时返回 0,并且在 PHP 中0==false。所以真的,没有必要包装strlen()一个函数。如果您想坚持使用布尔答案,请强制转换它。IE:

(bool) strlen($string);

因此,而不是你的函数,它可能在 if 块中调用,你只需要

if(strlen($string)) //etc.
于 2009-10-26T19:23:38.787 回答