【发布时间】:2011-01-06 22:15:41
【问题描述】:
所以我的主机拒绝更新到 PHP 5.3(这很烦人,但同时也很好;我很灵活),但唯一真正让我失望的是没有 __callStatic 可用。
我有加载的模块,我想合并到一个类(即有一个加载模块的类,然后通过调用主类的 __callStatic 方法访问这些模块的功能),但是当我上传时从本地测试服务器到我的服务器,显然 __callStatic 方法不起作用。
是否有一个 仍然 静态的替代方案?我喜欢干净的代码寻找双冒号(即registry::some_func())而不是$registry->some_func()。
另一个缺点是我现在不得不在函数中使用global 关键字(根据我自己的偏好,这非常、非常混乱)。
使用静态方法而不是非静态方法的代码也非常快,而且更干净。
另外:我考虑过像往常一样在 5.2 中编写 __callStatic 方法,然后显式调用这些方法,例如 registry::__callStatic("some_func"), array("val", "val2", "val3") 并让事情变得更简单,甚至更容易迁移当他们升级到 5.3 时。对这个方法有什么想法?
谢谢!
【问题讨论】:
标签: php static call magic-methods