【问题标题】:Why can't you use an inline if statement to return? [duplicate]为什么不能使用内联 if 语句返回? [复制]
【发布时间】:2016-04-13 13:22:56
【问题描述】:

当你想返回时,我似乎在 PHP 中使用内联 if 语句有一个限制。

function example($Variable)
{
    ( (int) (++$Variable) == 1 ) ? return true : return false;
}

$test = example(1);

预期:false

这给出了一个奇怪的错误,因为我以前从未见过。

错误类型:4

消息:语法错误,意外“返回”(T_RETURN)

谁能解释一下为什么不能在这样的 if 语句中使用 return?

【问题讨论】:

  • return ( (int) (++$Variable) == 1 ) ? true : false;
  • 注意:...php.net/manual/en/…
  • 那里不需要return。将它放在 inline if 之前。
  • 现在这更有意义了......(暗示我的愚蠢)

标签: php


【解决方案1】:

三元组已经返回结果。不能返回返回函数。

您可以像这样在变量结果之前返回:

function example($Variable)
{
    return ( (int) (++$Variable) == 1 ) ? true : false;
}
$test = example(1);

【讨论】:

  • 啊,我不敢相信我从来没有注意到这一点。我认为有一些明显的原因这不起作用。赞赏 - 我会标记!
  • 我喜欢这个词,三元,从来不知道它的存在。著名的。 @PhiterFernandes
  • 是的,三元表达式就是你所谓的inline if statement的名称。 :)
  • 我将使用它来让人们感到困惑;)@PhiterFernandes
猜你喜欢
  • 2015-05-06
  • 2019-04-12
  • 2016-12-08
  • 1970-01-01
  • 2021-07-31
  • 2022-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多