繁体   English   中英

PHP:获取调用另一个静态类的静态方法的类名

[英]PHP: Get class name of static method calling another static class

事实证明这有点难以解释,这可能是非常愚蠢的设计,但出于好奇,有没有办法获取静态方法的类的名称,即调用另一个类中的另一个静态方法。

A类调用B类中的静态方法B,C类中调用静态方法C。在C类中,我需要调用静态方法C的立即方法的类名,即B类。

class A {
   function A () {
       echo B::B();
   }
}

class B {
   function B () {
       return C::C();
   }
}

class C {
   function C () {
       return get_called_class();
   }
}

这将返回:A. 我希望它返回:B.

这甚至可能吗?

您可以为此使用堆栈跟踪。 看看http://php.net/debug_backtrace

由于类的封装,设计上不希望该方法知道外面发生了什么。 因此,我想到的唯一方法是这种 - 相当古怪的 - 方式。

并且您不应该依赖该信息,因为它会破坏封装。 如果您需要该信息,请将其作为参数传递!

不确定您要做什么,但请查看PHP 页面中的 Static 关键字 您提到了一个静态方法,但代码在任何地方都没有静态。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM