【发布时间】:2010-12-10 05:59:47
【问题描述】:
我正在 php 中构建一些简单的验证规则,而我的 IDE (phped) 抱怨语法问题。
谁能告诉我以下有什么问题?
function notBlank($str) {
(strlen($str) == 0) ? return false : return true;
}
phped 抱怨“意外返回”
任何建议表示赞赏。
谢谢。
【问题讨论】:
我正在 php 中构建一些简单的验证规则,而我的 IDE (phped) 抱怨语法问题。
谁能告诉我以下有什么问题?
function notBlank($str) {
(strlen($str) == 0) ? return false : return true;
}
phped 抱怨“意外返回”
任何建议表示赞赏。
谢谢。
【问题讨论】:
这样写:
function notBlank($str){
return strlen($str) != 0;
}
【讨论】:
这样写:
function notBlank($str) {
return ( strlen($str) == 0 ? false : true );
}
【讨论】:
您不能在三元运算符中使用 return。如果您想保留该语法,您必须执行以下操作:
function notBlank($str = '') {
$var = (strlen($str) == 0) ? false : true;
return $var;
}
尽管如此,请注意默认的做事方式更清晰:
function notBlank($str = '') {
if(strlen($str) == 0)
return false;
else
return true;
}
希望对你有帮助!
【讨论】:
strlen() 在字符串为空时返回 0,在 PHP 中为 0==false。所以真的,没有必要将strlen() 包装在一个函数中。如果你想坚持一个布尔答案,那就投吧。即:
(bool) strlen($string);
所以你的函数可能在 if 块中被调用,而不是你的函数,你只需要
if(strlen($string)) //etc.
【讨论】:
GSto 的答案在这里似乎是最好的,不过您可能还想查看 php 的 empty 函数:
【讨论】: