【问题标题】:Why something like this is invalid in php? [duplicate]为什么这样的东西在 php 中是无效的? [复制]
【发布时间】:2017-10-18 09:08:14
【问题描述】:

我最近在重构。并认为这会很棒。但不允许。

<?php


function(){

  doSomething() && return true;
}

【问题讨论】:

  • return (bool) learnSomething();
  • @tereško 这个return (bool) learnSomething();到底想说什么?

标签: php


【解决方案1】:

因为return 是一个语句,不能用作表达式的一部分。表达式是返回/产生值的东西。 return 不会产生任何值,但 &amp;&amp; 的操作数必须产生一个值,&amp;&amp; 表达式才可计算。

【讨论】:

  • 此外,问题中描述的逻辑实际上没有意义/不完整。失败的情况下函数返回什么?
  • 可以说它应该类似于if (doSomething) return true。所以,否则它不会返回任何东西。
  • 确实,这正是为什么这是一个坏主意的原因 ;-) otoh,我真希望 throw 是一个有效的表达式... doStuff() or throw ...$stuff ? $otherstuff : throw ...$var ?? throw ... 是我希望我能做的所有事情
  • @DaveRandom 。作为初学者,我感到非常抱歉。这是so中的第一个q
猜你喜欢
  • 2018-09-23
  • 2013-08-12
  • 2015-06-12
  • 2019-11-16
  • 1970-01-01
  • 2020-10-24
  • 2021-12-20
  • 2012-01-25
  • 1970-01-01
相关资源
最近更新 更多