gpt4 book ai didi

php - 如何获取调用函数的命名空间?

转载 作者:行者123 更新时间:2023-12-04 16:52:55 24 4
gpt4 key购买 nike

有没有办法让这个工作?

<?php

namespace Bar {
class test {
public function test($action) {
call_user_func($action); // must call \Foo\Action
}
}
}

namespace Foo {
$test = new \Bar\Test;

function action () {
echo 'it works!';
}

$test->test('action');
}

更详细的描述:如果我有一个函数使用 de call_user_func 调用用户定义的函数,并在 Foo 命名空间中使用该函数来调用 Foo 命名空间的函数,我怎么知道这个传递的函数在 Foo 命名空间上?

最佳答案

如果在字符串中按名称传递函数,则始终需要使用 完全限定名称 包括命名空间。 'action'指的是函数\action .即使在同一个命名空间中,这也无法正常工作。您需要使用 'Foo\action'在所有情况下。

如果您不喜欢硬编码命名空间名称,请使用 __NAMESPACE__ . '\\action' .

关于php - 如何获取调用函数的命名空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32205117/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com