Определите, в каком пространстве имен была вызвана функция

Мне было интересно, можно ли было определить текущее пространство имен при вызове функции. У меня есть это объявление функции:

<?php
namespace Site\Action;
function add ($hook, $function) {
    /**
     * determine the namespace this was called from because
     * __NAMESPACE__ is "site\action" :(
     */
     if (is_callable($function))
         call_user_func($function);
}
?>

И в другом файле:

<?php
namespace Foo;
function bar () {
}
?>

И скажем, у меня есть это в качестве моего процедурного кода:

<?php
namespace Foo;
Site\Action\add('hookname', 'bar');
?>

Имеет смысл предположить, чтоBar в этом случае был предназначен для решения какFoo\bar так как это было пространство имен, из которого он был вызван.

Это было длинное объяснение, поэтому еще раз, можно ли определить активное пространство имен, гдеSite\Action\add() был вызван из?

Заранее спасибо.

Ответы на вопрос(3)

Ваш ответ на вопрос