Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP这段代码的语法有什么问题?_Php_Syntax_Shorthand - Fatal编程技术网

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

PHP这段代码的语法有什么问题?,php,syntax,shorthand,Php,Syntax,Shorthand,我正在用php构建一些简单的验证规则,我的IDE(phped)正在抱怨语法 谁能告诉我下面的问题是什么 function notBlank($str) { (strlen($str) == 0) ? return false : return true; } phped抱怨“意外返回” 谢谢你的建议 谢谢。这样写: function notBlank($str){ return strlen($str) != 0; } function notBlank($str) {

我正在用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 );
}
function notBlank($str = '') {
    $var = (strlen($str) == 0) ? false : true;
    return $var;
}
这样写:

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

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

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

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

function notBlank($str){
   return strlen($str) != 0;
}
function notBlank($str) {
    return ( strlen($str) == 0 ? false : true );
}
function notBlank($str = '') {
    $var = (strlen($str) == 0) ? false : true;
    return $var;
}
但是请注意,默认的做事方式更清晰:

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

希望有帮助

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

function notBlank($str){
   return strlen($str) != 0;
}
function notBlank($str) {
    return ( strlen($str) == 0 ? false : true );
}
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(strlen($string)) //etc.
strlen()
当字符串为空时返回0,在PHP中
0==false
。所以实际上,没有必要在函数中包装
strlen()
。如果你想坚持一个布尔型的答案,那么就抛出它。即:

(bool) strlen($string);
因此,您只需要

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

GSto的答案在这里似乎是最好的,不过您也可以查看php的
empty
函数:


GSto的答案在这里似乎是最好的,不过您可能也想看看php的
empty
函数:


此处不需要三元运算符。您可以删除false或true,因为运算符返回布尔值。此处不需要三元运算符。您可以删除false或true,因为运算符返回布尔值。您可能仍希望将其包装在函数中,以使代码更易于理解。谁说“空白”的定义将来不会改变?如果将代码包装在函数中,您的代码能够更好地处理这样的更改,因为它更抽象。@rmeador:对我来说,这听起来像是以防万一编程。我同意,如果我计划最终实现一个更复杂的条件,那么创建一个函数是合适的。但是,如果我没有这个意图,我就不想通过包装简单的函数调用来降低它们的速度。您可能仍然希望将其包装到函数中,以使代码更易于理解。谁说“空白”的定义将来不会改变?如果将代码包装在函数中,您的代码能够更好地处理这样的更改,因为它更抽象。@rmeador:对我来说,这听起来像是以防万一编程。我同意,如果我计划最终实现一个更复杂的条件,那么创建一个函数是合适的。但是如果我没有这个意图,我就不想通过包装来减慢简单函数调用的速度。我不能说我喜欢“if(x)return false else return true”类型的构造,因为你可以只使用“return!x”。尽管如此,这还是得到了+1,因为它实际上回答了最初的问题,即查询出了什么问题(而不仅仅是解释了一种不同的方法)。我不能说我喜欢“if(x)return false else return true”类型的构造,而您可以只使用“return!x”。尽管如此,实际上回答了最初的问题,即查询出了什么问题(而不仅仅是解释一种不同的方法),这就得到了+1