Fonksiyonu için arayan sınıf ve arayan yöntemini belirlemek için backtrace_debug kullanma.

0 Cevap php

Ben bir ana sınıfı ve bir çocuk sınıf var. Bir üst sınıfta ben (bir fonksiyon f tanımlamak) ve bu işlevi denilen çocukların yöntemin üst sınıf ve adını genişletilmiş çocuklar sınıfın bunun adına yazdırmak istiyorum. Ben bunu böyle yapın.

abstract class ParentClass {

  public function f() {
       $backtrace = debug_backtrace();      
       echo "Class: " . $backtrace[1]['class']) . "\n";
       echo "Function: " . $backtrace[1]['function'];
  }

}

class ChildrenClass extends ParentClass {

   public function some_func() {
        $this->f();
   }
}


$o = new ChildrenClass;
$o->some_func();

Ve bana doğru çıkışları:

Class: ChildrenClass
Function: some_func

The question is: is my solution appropriate or there is a better way to achieve this? I tried to use __CLASS__ and __FUNCTION__ but it always gives me a classname and function name of the parent class.

0 Cevap