答案 0 :(得分:3)
答案 1 :(得分:1)
答案 2 :(得分:1)
答案 3 :(得分:1)
你可以让这个班级成为单身人士。然后更新调用类的任何位置以使用单例模式。您还可以使__construct()为private或protected,以便必须使用instance()方法对其进行实例化。这意味着该课程只被召唤一次。
然后,为了让您高枕无忧,找出多次调用它的位置,您可以使用instance()方法使用debug_backtrace打印出调试信息。
答案 4 :(得分:0)
答案 5 :(得分:0)
为了分析PHP脚本,我使用xdebug扩展名。这与KCachegrind或WinCacheGrind一起将允许您查看哪些类/函数正在调用相关类。
答案 6 :(得分:0)
以下代码段基于debug_backtrace()的使用情况。
在没有参数和选项的情况下获取回溯,并限制为3个数组项;那么"班" name从数组的第二个元素返回。
<强> Demo 强>
代码:
<?php
class MyClass
{
// find out where $myClass->exec() was called
static function getInstantiatingClass()
{
return debug_backtrace(2, 3)[2]['class'];
}
function exec()
{
echo __METHOD__ . ' was called from Class ' . self::getInstantiatingClass();
}
}
class Demo
{
function test()
{
$myClass = new MyClass;
$myClass->exec();
}
}
$demo = new Demo;
$demo->test();
结果:
MyClass::exec was called from Class Demo