如何在没有加载源文件的情况下使用php函数?

时间:2009-04-09 19:02:37

标签: php function

我想使用我的函数,例如DebugR(),但我不想使用require或include(带include_path)来加载包含源的函数文件。 / p>

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

4 个答案:

答案 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();