我想使用我的函数,例如DebugR()
,但我不想使用require或include(带include_path
)来加载包含源的函数文件。 / p>
我知道我可以使用自动加载,但这个动作在我的php配置中必须是通用的。我想我必须创建一个PHP扩展,但还有另一种方法吗?
答案 0 :(得分:5)
您可以使用PHP配置行。
文档说明了这一点:
auto_prepend_file string
Specifies the name of a file that is automatically parsed before the main file. The file is included as if it was called with the require() function, so include_path is used.
The special value none disables auto-prepending.
答案 1 :(得分:0)
如果没有构建扩展,或者自动加载一类函数或者直接将函数放入页面,或者在同一个文件中编写函数,我很确定没有调整PHP配置的方法。
出于好奇,不想做任何这些事情的原因是什么?
答案 2 :(得分:0)
为什么不使用加速器将代码缓存为内存中的BC? 您仍然需要编写“include”指令 如果扩展位于您所在的位置,则从任何可用的开源加速器进行分叉。
答案 3 :(得分:0)
唯一可行的方法是使用这样的自动加载:
// your_file.php
function __autoload($class)
{
require_once('./classes/' . $class . '.php');
}
echo _::Bar();
var_dump(_::DebugR());
echo _::Foo();
// ./classes/_.php
class _
{
function Bar()
{
return 'bar';
}
function DebugR()
{
return true;
}
function Foo()
{
return 'foo';
}
}
当然,每个函数都将存储在此_类中。
另一种选择,如果你在一个对象中工作,那就是使用__call()魔术方法,并执行以下操作:
return $this->DebugR();