强类型vs弱类型

时间:2019-10-23 09:01:36

标签: php strong-typing weakly-typed

我最近被任命为使用PHP后端的项目的开发人员。凭借以前在C#等强类型语言中的经验,这对我来说很难。在C#中,更容易:-

  • 查找所有引用
  • 更好的调试经验
  • 了解期望的对象类型

还有更多...

我知道像JavaScript这样的弱类型语言的好处,这为您可以做很多事情提供了可能。但是当您对业务对象具有业务逻辑时,我宁愿使用强类型语言。

我真正的问题是,如果您有这样的事情:-

public function saveEntity($externalId, $layer, $sign = null, $user= null, $pass = null) {

我应该如何知道$ layer包含什么,而不必在调用此函数之前先阅读所有代码行?在这样的地方,识别对象的类型很重要吗?

1 个答案:

答案 0 :(得分:4)

两种方法。

您可以使用phpdoc来注释您的方法和变量:

event is Long

或者只需在方法声明中写入类型(需要PHP> = 7):

/**
 * @param int $externalID
 * @param Layer $layer
 * ...
 * @return boolean
 */
public function saveEntity($externalId, $layer, $sign = null, 
                           $user= null, $pass = null) { ... }

或者最好同时使用两者。

在代码中始终如一地执行此操作将为您提供所需的一切,同时仍可从动态语言中受益。然后,您的IDE可以进行重构,查找用法并发出警告等。