我解決它像這樣
類文件類/ 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