在三元运算符php中使用return

dzm*_*dzm 15 php conditional-operator

我试图在三元运算符中使用return,但收到错误:

Parse error: syntax error, unexpected T_RETURN 
Run Code Online (Sandbox Code Playgroud)

这是代码:

$e = $this->return_errors();
(!$e) ? '' : return array('false', $e);
Run Code Online (Sandbox Code Playgroud)

这可能吗?

谢谢!

ios*_*seb 23

这是正确的语法:

return  !$e ? '' : array('false', $e);
Run Code Online (Sandbox Code Playgroud)

  • 我不认为这是OP的例子中的预期结果.这将在两种情况下都返回,而OP可能会询问如何在其中一种情况下返回. (8认同)

Sys*_*hus 11

关.你想要的return condition?a:b


Bla*_*iev 6

它不会在大多数语言工作,因为return是一个语句(如if,while等),而不是可以被嵌套在一个表达式运算符.遵循相同的逻辑,您不会尝试if在表达式中嵌套语句:

// invalid because 'if' is a statement, cannot be nested, and yields no result
func(if ($a) $b; else $c;); 

// valid because ?: is an operator that yields a result
func($a ? $b : $c); 
Run Code Online (Sandbox Code Playgroud)

这是行不通的break,并continue为好.