我解决它像这样
类文件类/ functions.php中:
class functions {
public function __call($function, $arguments) {
if (!function_exists($function)) {
$function_file = 'path/to/functions/' . substr($function, 0, strpos($function, '_')).'.php';
include_once($function_file);
}
return call_user_func_array($function, $arguments);
}
}
功能文件功能/ test.php的
function test_foo() {
return 'bar';
}
的脚本myscript.php:
require_once('classes/functions.php');
$functions = new functions();
echo $functions->test_foo(); // Checks if function test_foo() exists,
// includes the function file if not included,
// and returns bar
您最终可以使用__autoload()自动加载classes/functions.php。
最后,my_function()的语法变成$ functions-> my_function()。如果函数不存在,你可以编写你自己的错误处理程序。 ;)
来源
2012-07-05 22:50:52
tim
如果是一个个人/内部框架,你可以使用像f('fn',array([args]));但我认为这种交换是不值得的。 – 2012-07-05 22:25:46
[自动加载功能在PHP]中可能的重复(http://stackoverflow.com/questions/4196881/autoload-functions-in-php) - 错误 - [自动加载程序的功能(2011年1月19日)](http:// stackoverflow .com/questions/4737199/autoloader-for-functions) – hakre 2012-08-27 10:26:19