作者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)
→ kuAIpAI:直接寫成兩種方法 兩種輸出格式不是比較好嗎? 07/21 12:39
→ JYHuang:會有這種需要,當然就是有某些考量咩~ 07/21 14:02
→ kuAIpAI:你不會多傳一個參數過去判斷就好了~ 07/21 18:06
推 gpmm:老實說…你用多型解會比較漂亮 XDDD 07/22 03:24
→ arrack:從debug_backtrace ...不過應該還是要自己寫一個小function 07/22 08:58
→ arrack: ^()抓 07/22 08:58
→ JoeHorn:PHP 有建構式可以用... 07/22 23:57
推 senser:你可以試試看用factory pattern設計 07/25 17:13