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

时间:2015-04-10 20:26:28

标签: php oop

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

类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。

这甚至可能吗?

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

不确定您正在尝试做什么,但请查看PHP page for the Static keyword。你提到了一个静态方法,但代码在任何地方都没有静态。