PHP7返回值类型声明的目的是什么?

时间:2017-09-27 08:17:15

标签: php php-7

我正在阅读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));

我能找到的唯一目的是在接口定义中更具体(这是一个优点)。但是,在每种方法中都包含它们还有其他原因吗?

1 个答案:

答案 0 :(得分:2)

如果你正在编写一个库以供其他代码使用,那么拥有一个定义良好的API是很好的,并且声明的返回类型也是其中的一部分。它节省了人们不得不在源代码中徘徊来解决问题。

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

正如其他人所说的,它可以帮助您的IDE计算出应该发生的事情。这很方便。 IDE也会利用这些phpdoc注释注释,但它们是评论所以它们是谎言,并且实际上并没有强制执行合同,所以实际上并不是......这是一件好事。