静态调用函数时可以使用__call
魔术方法吗?使用__call与静态类?
7
A
回答
15
还不知道,现在有一个建议(现在可用)__callStatic
Docs方法在最后我知道。否则__call
和其他__
魔术方法不可用于任何对象的实例。
8
你必须使用其他神奇的方法,__callStatic
- 这是只有在PHP> = 5.3,尚未实际发布呢。
0
如前所述,没有神奇的静态调用者。但是你可以这样编码:
class First {
public static function test1(){
return 1;
}
public static function test2(){
return 2;
}
}
class Second {
public static function test1(){
if(func_num_args()>0){
return func_get_args();
}
return 21;
}
public static function test2(){
return 22;
}
}
class StaticFactory {
public static function factory($class, $method){
if(func_num_args()>2){
$args = func_get_args();
array_shift($args);
array_shift($args);
return call_user_func_array(array($class,$method), $args);
}else{
return call_user_func_array(array($class,$method), array());
}
}
}
print_r(StaticFactory::factory("Second", "test1", 1, false, true));
print_r(StaticFactory::factory("First", "test1"));
相关问题
- 1. __call,__call静态和在PHP中调用范围
- 2. __call捕获静态方法调用
- 3. 静态与非静态类
- 4. 单独使用的类与'静态类'
- 5. 与静态类
- 6. 蟒蛇静态类与使用自静态方法?
- 7. 与静态类一起使用LocalBroadcastManager
- 8. 与静态类一起使用arrayaccess
- 9. 使用静态或非静态类
- 10. 静态与动态类型
- 11. 动态函数参数和使用__call
- 12. 静态工具操作的静态类与静态结构?
- 13. 静态主类静态类?
- 14. 使用__call()文档化的PHP类
- 15. 在父/基类中使用__call?
- 16. 静态类使用Java
- 17. NServiceBus使用静态类库
- 18. 使用静态包装类
- 19. 使用PowerShell静态类中访问静态类
- 20. 使用非静态方法中的内部类的静态类
- 21. 与actionListener静态类冲突
- 22. Juint测试与静态类
- 23. 静态类与Python 3
- 24. C++类与静态指针
- 25. 使用参考使用__call()
- 26. (Java)静态通用方法与泛型类静态方法
- 27. C#使类静态?
- 28. Android静态类与非静态类内存性能
- 29. 使用radiobutton.Checked在另一个类(问题与静态/非静态的东西)
- 30. 在助手类中使用静态方法与非静态方法
导入时需要注意的是不可用。 – David 2009-01-27 02:45:09