1

我只是想知道,除了我们的代码清晰性之外,是否还有其他任何问题(例如安全问题等),为什么我们应该避免通过此代码获取类变量

    getVar('var');

代替:

   getId(); getName(); etc. etc.

?

4

1 回答 1

3

我想一个原因是您的 IDE 可以通过自动完成和类型提示方法名称来帮助您。

如果您在第一个示例中使用通用 get 方法,IDE 将无法为您提供任何帮助。

此外,如果它是一个公共 API(即,除了您自己之外的开发人员将使用它),它确实会帮助他们拥有一个固定的接口来使用,而不是一个不会告诉他们可能的选项的单一 get 方法是为了它。

由于我们在这里专门讨论 PHP,因此值得指出的是,您所描述的功能与 PHP 的内置__get()方法非常相似。此方法与您描述的方式非常相似getVar(),但将变量公开为属性。

这也有与 IDE 类型提示类似的问题,但如果您使用体面的 IDE,则可以通过使用文档注释告诉 IDE 支持哪些属性来解决此问题。方法getVar()不会有这个选项。

于 2013-03-27T15:00:20.157 回答