【问题标题】:What's the purpose of PHP7's returning values type declarationPHP7的返回值类型声明的目的是什么
【发布时间】:2017-09-27 08:17:15
【问题描述】:

我正在阅读 PHP7 的新功能,我对此产生了疑问:

Returning values: Return type declarations

function sum($a, $b): float {
    return $a + $b;
}

// Note that a float will be returned.
var_dump(sum(1, 2));

我能找到的唯一目的是在接口定义上更加具体(这是一个优势)。但是,是否有任何其他原因将它们包含在每个方法中?

【问题讨论】:

  • 它还可以帮助您防止父类的覆盖类型。如果你的类返回浮点数,你的重写方法也应该返回浮点数。虽然这真的很有用
  • 其他原因之一可能是 IDE 类型检查。这意味着如果您可以将该变量传递给函数(如果它只接受 bool),那么 IDE 会为您提供帮助。
  • @Akintunde strict typing 不是为此而生的吗?

标签: php php-7


【解决方案1】:

如果您正在编写一个库供其他代码使用,最好有一个定义良好的 API,并且声明的返回类型是其中的一部分。它使人们不必在源代码中寻找解决办法。

对于您自己的代码使用,这是一个安全检查,您是否正确地编写了您的函数,并保持“按计划”。它鼓励你的职能做一件事,并保持专注。 PHP 本身在某些地方有点混乱,如果某些事情没有按计划进行,它可能会返回整数值 或布尔值。这是非常糟糕的编码。这意味着调用代码必须针对这两种可能性进行编码,而它不应该这样做。如果你在你的函数上指定一个返回类型,你将无法走这条路。

正如其他人所说,它还可以帮助您的 IDE 确定应该发生的事情。这很方便。 IDE 也将利用那些 phpdoc 注释 cmets,但它们是 cmets,因此它们会撒谎,并且实际上并不强制执行合同,因此并不是真正的……一件好事。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-17
    • 1970-01-01
    • 2017-11-02
    • 2017-08-25
    相关资源
    最近更新 更多