看板 PHP 關於我們 聯絡資訊
※ 引述《JYHuang (夏天到了,冷不起來了說)》之銘言: : 在直接宣告一新的物件時 : 有無可能把其中一個元件宣告成函式? : Ex: : $object = new stdclass; : $object->best() = function(){ : Do some thing here.... : return $something; : } : 因為裡面是會計算到其它的資料 : 在不同時間執行會有不同的結果 : 在需要時再echo $object->best()->name; : 這樣~ 如果只想用單一函式卻要對不同時間進行不同功能可以如此考量: class object{ function __construct(){ $this->_init(); } private function _init(){ $this->myfunc = 依照不同時間需求載入功能性物件,物件一樣全部都 提供func()這個功能。 當然你也可以讓單一物件另外依時間幫你處理func()要傳回的函式內容。 不過事實上這和你寫在本體物件就變成是一樣的東西了。 } function best(){ $this->name = $this->myfunc->func(); $something = 放資料 return $something; } } 如果僅是因為你的需求在於要單純化單一功能的執行方法。 這是我覺得可行的做法。 只是說實在的,光是看你那樣的概念性想法我還不是很清楚你是要做什麼。 何況,如果物件的方法內容是能在外部被隨時抽換的話。 我不知道還要寫物件幹嘛。 你已經在內部抽換你所想要的方法,但不應該想說從外部定義他。 但事實上能不能外部抽換?當然行。 可是你抽換的也只是函式內的承載物件,而非本身的程式碼。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 112.105.95.58
kuAIpAI:推~~~~~~~~~~ 06/13 22:04