[請益] class下的function是被誰呼叫..

看板PHP作者 (夏天到了,冷不起來了說)時間14年前 (2011/07/21 11:20), 編輯推噓2(206)
留言8則, 6人參與, 最新討論串1/1
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)

07/21 12:39, , 1F
直接寫成兩種方法 兩種輸出格式不是比較好嗎?
07/21 12:39, 1F

07/21 14:02, , 2F
會有這種需要,當然就是有某些考量咩~
07/21 14:02, 2F

07/21 18:06, , 3F
你不會多傳一個參數過去判斷就好了~
07/21 18:06, 3F

07/22 03:24, , 4F
老實說…你用多型解會比較漂亮 XDDD
07/22 03:24, 4F

07/22 08:58, , 5F
從debug_backtrace ...不過應該還是要自己寫一個小function
07/22 08:58, 5F

07/22 08:58, , 6F
^()抓
07/22 08:58, 6F

07/22 23:57, , 7F
PHP 有建構式可以用...
07/22 23:57, 7F

07/25 17:13, , 8F
你可以試試看用factory pattern設計
07/25 17:13, 8F
文章代碼(AID): #1E9viBYL (PHP)
文章代碼(AID): #1E9viBYL (PHP)