在另一个类中获取被调用的类名

时间:2016-08-21 15:07:53

标签: php

我们有一个班级

class A
{
    // I am using class B here
   public function whatever()
   {
      $class_b = new B;
      $class_b->show_caller();
   }
}

和其他

class B
{
    public function show_caller()
    {
        // show me the caller class (should output "A")
    }

}

我需要获取调用者类名。 附:继承不是一种选择!

2 个答案:

答案 0 :(得分:1)

将班级A作为B::show_caller()的参数传递,并使用get_class()输出其姓名:

class A
{
    // I am using class B here
   public function whatever()
   {
      $class_b = new B;
      $class_b->show_caller($this);
   }
}

class B
{
    public function show_caller($class)
    {
        echo get_class($class);
    }

}

答案 1 :(得分:0)

我们无法提供有关您的方法在没有参数的情况下执行方法的位置的知识。后期静态绑定仅适用于继承,因此不是您的情况。我可以给你的唯一方法是使用你的IDE能力在项目中找到方法用法(在PhpStorm中ctrl+mouse1)。如果你没有使用任何IDE - 现在是时候开始了。