2009-04-09 68 views
2

我想使用我的功能,例如DebugR(),但我不想使用require或include(包含include_path)加载包含源代码的函数文件。如何在不加载源文件的情况下使用php函数?

我知道我可以使用自动加载,但是这个动作必须在我的php配置中是通用的。我认为我必须创建一个PHP扩展,但有另一种方法吗?

+0

谢谢吉姆·普尔斯,我会记住编辑如何futurs问题 – 2009-04-09 19:09:44

回答

5

有一个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. 
0

没有构建扩展,或自动加载一类函数或直接要求函数进入页面,或将函数写入同一个文件,我敢肯定,没有一种方法,没有调整你的PHP组态。

出于好奇,有什么理由不想做任何这些事情?

0

为什么不使用加速器将代码缓存为内存中的BC?
您仍然需要编写“include”指令。
如果扩展名是你的头,那么从任何可用的开源加速器中分离出来。

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(); 
+0

“我知道我可以使用自动加载,但此操作必须是通用的“ 我不想使用自动加载。阅读投票答案,这是问题的最佳答案。 – 2009-04-10 16:04:44

相关问题