作者JYHuang (夏天到了,冷不起来了说)
看板PHP
标题[请益] class下的function是被谁呼叫..
时间Thu Jul 21 11:20:41 2011
class Func{
private $data;
function getdata1($key){
....
$this->data = $foo;
return $this;
}
function getdata2($key){
..
$this->data = $bar;
return $this;
}
function output(){
$output = blablabla
echo $output
}
}
$func = new Func();
$func->getdata1($key)->output();
$func->getdata2($key)->output();
我想要在getdata1($key)->output() 和 getdata2($key)->output()
输出不同的格式。
目前想到的是在output函式里去判断被那个函式呼叫。
如果是被getdata1()呼叫用A格式
如果是被getdata2()呼叫用B格式
查资料,似乎只有get_called_class这个函式。
可是get_called_class是php5.3才有。
有无法方可以不经由参数的传递,
由被呼叫的函式主动去查询呼叫的函式名称呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.39.170.95
※ 编辑: JYHuang 来自: 114.39.170.95 (07/21 11:21)
1F:→ kuAIpAI:直接写成两种方法 两种输出格式不是比较好吗? 07/21 12:39
2F:→ JYHuang:会有这种需要,当然就是有某些考量咩~ 07/21 14:02
3F:→ kuAIpAI:你不会多传一个参数过去判断就好了~ 07/21 18:06
4F:推 gpmm:老实说…你用多型解会比较漂亮 XDDD 07/22 03:24
5F:→ arrack:从debug_backtrace ...不过应该还是要自己写一个小function 07/22 08:58
6F:→ arrack: ^()抓 07/22 08:58
7F:→ JoeHorn:PHP 有建构式可以用... 07/22 23:57
8F:推 senser:你可以试试看用factory pattern设计 07/25 17:13