看板 PHP 關於我們 聯絡資訊
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