gpt4 book ai didi

php - 如何检测PHP中使用的最后一个命名空间?

转载 作者:行者123 更新时间:2023-12-04 06:01:35 27 4
gpt4 key购买 nike

如果我在单独的命名空间(及其文件)中有两个类,并且它们都在全局命名空间中调用了一个函数 - 有没有办法在不传递值的情况下识别哪个命名空间调用了该函数?

namespace A;
class Test { function run() { \func(); }

...

namespace B;
class Test { function run() { \func(); }

...

function func()
{
// Did a class from "\A" call me or "\B"...?
}

我的第一个想法是使用 __NAMESPACE__ constant .但这是就地计算的,所以它不能解决这个问题。

最佳答案

您可以在每个命名空间中定义函数的版本,然后调用 func();

namespace A;
class Test { function run() { func(); }

...

namespace B;
class Test { function run() { func(); }

...

namespace A
{
function func()
{
\func(__NAMESPACE__);
}
}

namespace B
{
function func()
{
\func(__NAMESPACE__);
}
}

namespace
{
function func($namespace)
{
//work with $namespace
}
}

关于php - 如何检测PHP中使用的最后一个命名空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8856206/

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