PHP这段代码的语法有什么问题?

时间:2009-10-26 19:09:32

标签: php syntax shorthand

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

有人可以告诉我以下内容有什么问题吗?

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

phped抱怨'意外回归'

任何建议表示赞赏。

感谢。

5 个答案:

答案 0 :(得分:13)

这样写:

function notBlank($str){
   return strlen($str) != 0;
}

答案 1 :(得分:2)

像这样写:

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

答案 2 :(得分: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;
}

希望它有所帮助!

答案 3 :(得分:1)

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

http://www.php.net/empty

答案 4 :(得分:0)

strlen()在字符串为空时返回0,在PHP 0==false中返回。所以真的,没有必要在函数中包装strlen()。如果你想坚持一个布尔答案,那就投吧。即:

(bool) strlen($string);

所以不是你的函数,而是在if块中可以调用,你只需要

if(strlen($string)) //etc.