我想使用我的功能,例如DebugR()
,但我不想使用require或include(包含include_path
)加载包含源代码的函数文件。如何在不加载源文件的情况下使用php函数?
我知道我可以使用自动加载,但是这个动作必须在我的php配置中是通用的。我认为我必须创建一个PHP扩展,但有另一种方法吗?
我想使用我的功能,例如DebugR()
,但我不想使用require或include(包含include_path
)加载包含源代码的函数文件。如何在不加载源文件的情况下使用php函数?
我知道我可以使用自动加载,但是这个动作必须在我的php配置中是通用的。我认为我必须创建一个PHP扩展,但有另一种方法吗?
有一个PHP配置行,你可以做。
文档说这个:
的auto_prepend_file串
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.
没有构建扩展,或自动加载一类函数或直接要求函数进入页面,或将函数写入同一个文件,我敢肯定,没有一种方法,没有调整你的PHP组态。
出于好奇,有什么理由不想做任何这些事情?
为什么不使用加速器将代码缓存为内存中的BC?
您仍然需要编写“include”指令。
如果扩展名是你的头,那么从任何可用的开源加速器中分离出来。
唯一可行的方式做到这一点是使用自动加载这样的:
// 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();
“我知道我可以使用自动加载,但此操作必须是通用的“ 我不想使用自动加载。阅读投票答案,这是问题的最佳答案。 – 2009-04-10 16:04:44
谢谢吉姆·普尔斯,我会记住编辑如何futurs问题 – 2009-04-09 19:09:44