(何时)我应该在PHP中使用类型提示?

2022-08-30 17:28:39

我无法理解PHP作者添加类型提示的动机。在它出现之前,我快乐地生活着。然后,当它被添加到 PHP 5 中时,我开始在任何地方指定类型。现在我认为这是一个坏主意,因为鸭子类型确保了类之间的最小耦合,并利用了代码模块化和重用。

感觉就像类型提示将语言分为两种方言:有些人以静态语言风格编写代码,带有提示,而另一些人则坚持使用旧的动态语言模型。还是不是“全有或全无”的情况?我应该在适当的时候以某种方式混合这两种风格吗?


答案 1

这不是关于静态与动态类型,php仍然是动态的。这是关于接口的契约。如果您知道某个函数需要一个数组作为其参数之一,请在函数定义中强制使用它。我更喜欢快速失败,而不是在函数中稍后出错。

(另请注意,您不能为 bool、int、string、float 指定类型提示,这在动态上下文中是有意义的。


答案 2

每当函数中的代码肯定依赖于所传递参数的类型时,都应使用类型提示。无论如何,代码都会生成错误,但类型提示将为您提供更好的错误消息。


推荐