我只是想知道,除了我们的代码清晰性之外,是否还有其他任何问题(例如安全问题等),为什么我们应该避免通过此代码获取类变量
getVar('var');
代替:
getId(); getName(); etc. etc.
?
我想一个原因是您的 IDE 可以通过自动完成和类型提示方法名称来帮助您。
如果您在第一个示例中使用通用 get 方法,IDE 将无法为您提供任何帮助。
此外,如果它是一个公共 API(即,除了您自己之外的开发人员将使用它),它确实会帮助他们拥有一个固定的接口来使用,而不是一个不会告诉他们可能的选项的单一 get 方法是为了它。
由于我们在这里专门讨论 PHP,因此值得指出的是,您所描述的功能与 PHP 的内置__get()
方法非常相似。此方法与您描述的方式非常相似getVar()
,但将变量公开为属性。
这也有与 IDE 类型提示类似的问题,但如果您使用体面的 IDE,则可以通过使用文档注释告诉 IDE 支持哪些属性来解决此问题。方法getVar()
不会有这个选项。