我有两个类的代码
class old{
function query(){
#do some actions ...
}
function advancedQuery(){
#some actions and then
$this->query();
}
}
和
class awesome extends old{
function query(){
parent::query();
$fromClassOld = false; # this variable must be changed if method is called from class 'OLD'
if( $fromClassOld ){
echo 'foo ';
}else{
echo 'bar ';
}
}
}
然后像这样的一些用法
$awesome = new awesome();
$awesome->query(); # should return 'bar'
$awesome->advancedQuery(); # should return 'foo'
你可以在这里查看代码http://goo.gl/Gq63Wk
如果从类“旧”中调用方法 query(),我希望更改该变量 $fromClassOld。
类旧不能修改。
我通过使用 debug_backtrace() 并检查变量 debug_backtrace()[0]['file'] 发现了 hack,但我很确定这可以以更好的方式解决。