靜態調用函數時可以使用__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