从函数内调用函数

时间:2013-12-11 12:33:01

标签: php

我有以下类结构:

class SomeClass
{
    function execute()
    {
        $value = getValue();
    }

    function RegisterCallbackHandlers()
    {
        function ajaxCall()
        {
            $value = getValue();
        }
    }
}

函数 getValue 对于它所调用的两个实例都是一样的,但我只能让它一次一个地工作。当我把它放在执行中时,它在那里工作。当我把它放在 RegisterCallbackHandlers 中时,它适用于 ajaxCall

我必须把它放在哪里,以便从 ajaxCall 执行调用时可以使用?

2 个答案:

答案 0 :(得分:0)

在函数内部声明函数时,此函数未封装。

所以,ajaxCall是一个全局函数,你可以在任何地方调用,最重要的是,你不能重新声明它。

事实上,如果你做了这件事:

$s = new SomeClass();
$s->RegisterCallbackHandlers();
$s->RegisterCallbackHandlers();
你有

  

致命错误:无法重新声明ajaxCall()

所以,你应该只调用RegisterCallbackHandlers一次,然后你不需要在其他任何地方进行任何其他声明。

答案 1 :(得分:0)

我将 getValue 函数放在 RegisterCallbackHandlers 函数中,并在执行函数中调用它,如下所示:

SomeClass::RegisterCallbackHandlers();
$value = getValue($somNumber);