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这是一个新问题,所以你应该开始一个新问题来回答它。