PHP调用PHP 5.2的静态解决方法

时间:2010-06-26 02:52:17

标签: php

是否有办法在PHP 5.2中获得__callStatic或类似的功能?

我正在完成PHP框架,需要将此功能用于Database ORM类。因此,例如,您可以使用下面的代码从数据库表的第2列和第4列获取数据,即通过根据您的需要动态声明方法(如我猜的轨道)。

Class::find_by_col2_or_col4();

我已经在PHP 5.3中完成了这项工作并且它运行良好,但我正在尝试为那些使用PHP 5.2的人做同样的事情。

或者是否有其他方法可以使用PHP 5.2检索静态方法和参数的名称?

感谢。

1 个答案:

答案 0 :(得分:0)

不是静态容量。从技术上讲,Rails,CakePHP等不会静态地调用这些类型的动态方法。不要进行哲学辩论,但如果要求向后兼容性,则可以改变范式并使用__call()。在这种情况下,您可以使用ModelObject->find_by_col2_or_col4之类的对象进行调用。当然,我明白这可能不是你想听到的。

这是PHP,可能有某种方式来破解它,但我不相信存在本机方法。