找出哪个类别在另一个类别中称为方法

找出哪个类别在另一个类别中称为方法,第1张

找出哪个类别在另一个类别中称为方法

您可以这样使用

debug_backtrace

顺便说一句,看看手册页上的评论:有一些有用的功能和建议;-)

class Foo{  public function __construct()  {    $bar = new Bar();    $bar->test();  }}class Bar{  public function test()  {      $trace = debug_backtrace();      if (isset($trace[1])) {          // $trace[0] is ourself          // $trace[1] is our caller          // and so on...          var_dump($trace[1]);          echo "called by {$trace[1]['class']} :: {$trace[1]['function']}";      }  }}$foo = new Foo();

var_dump
会输出:

array  'file' => string '/home/squale/developpement/tests/temp/temp.php' (length=46)  'line' => int 29  'function' => string '__construct' (length=11)  'class' => string 'Foo' (length=3)  'object' =>     object(Foo)[1]  'type' => string '->' (length=2)  'args' =>     array      empty

echo

called by Foo :: __construct

但是,尽管看起来不错,但我不确定它是否应该在您的应用程序中用作“正常事物” …似乎有些奇怪,实际上:设计良好的方法不需要知道它叫什么, 在我看来。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5014934.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-15
下一篇 2022-11-15

发表评论

登录后才能评论

评论列表(0条)

保存