php oop每次调用一个通用函数

php oop每次调用一个通用函数,php,oop,Php,Oop,我正试着通过这个循环 public static function CSS() { $filenames = array( "css/tableStyles.css"=>"function1()", "css/resetCSS.css"=> "function2()" ); foreach ($filenames as $filename=>$method){

我正试着通过这个循环

public static function CSS() {

        $filenames = array(
            "css/tableStyles.css"=>"function1()",
            "css/resetCSS.css"=> "function2()"
        );
        foreach ($filenames as $filename=>$method){
            CSS::$method;
        }


    }

   public function1(){
//do something
   }


   public function2(){
//do something else
   }

}
我得到一个运行时错误。 有什么建议吗

编辑: 谢谢arxanas

答案是:

$filenames = array(
                "css/tableStyles.css"=>"function1",
                "css/resetCSS.css"=> "function2"
            );
            foreach ($filenames as $filename=>$method){
                CSS::$method();
            }

CSS::function1
是否存在?你还没有表现出来。在任何情况下,都不应该在有
function1()
的地方使用括号。改用

$filenames = array(
    "css/tableStyles.css"=>"function1",
    "css/resetCSS.css"=> "function2"
);
foreach ($filenames as $filename=>$method){
    CSS::$method();
}

您需要将function1和function2定义为静态

    public static function1(){
//do something
   }


   public static function2(){
//do something else
   }

不能从静态方法调用非静态方法。您需要像静态方法一样定义
function1
function2
。而且您也可以调用属性而不是方法

public static function CSS() {

        $filenames = array(
            "css/tableStyles.css"=>"function1()",
            "css/resetCSS.css"=> "function2()"
        );
        foreach ($filenames as $filename=>$method){
            CSS::$method();
        }


    }

   public static function1(){
//do something
   }


   public static function2(){
//do something else
   }

}

错误的文本是什么?为什么不把Arxanas作为你问题的答案。谢谢,我想我已经准备好了。。完成。再次感谢阿克斯!你好,arxans,我尝试了这个函数的更多genelraiztion->我也想传递类名,然后将其命名为=>“css/tableStyles.css”=>“css::function1”、“css/tableStyles.js”=>“js::function5”,但它不起作用。@devmonster这是一个新问题,所以你应该开始一个新问题来回答它。