【发布时间】:2011-08-25 17:15:34
【问题描述】:
我注意到,如果我在与外部函数同名的类方法中声明一个函数,我会收到错误:
function a(){
...
}
class foo{
public function init(){
function a(){ // <- error
...
}
...
}
}
但是这会起作用:
function a(){
...
}
class foo{
public static function a(){
...
}
}
我可以使用 require_once 或类似的东西包含一组充当此类静态方法的函数吗?
require_once('file.php'); 在class foo{ 之后不起作用...
【问题讨论】:
-
恕我直言,永远不应该有需要在另一个函数中声明函数定义的时候。很有可能,有更好的方法来完成你想要完成的事情。你为什么要这样做?
-
我不需要在函数内部声明函数,这只是我的愚蠢示例,因为 require_once() 显然只能在类函数内部工作:) 我想以某种方式包含一组来自不同文件的此类的静态方法。它们将位于不同的文件中,因为它们太多了:)
-
您可以将函数放在脚本顶部的包含中,或者更好的是,将您的函数放入类中,然后创建一个类自动加载器,这样您就可以只透明地加载您的类随意需要。
-
@dqhendricks :在 OOP 上下文中确定的事情,在 FunctionalOP 中完全不同的问题。由于 PHP 现在有闭包和 lambda,所以问题不再那么奇怪了。
标签: php class function require