作者tkdmaf (皮皮快跑)
看板PHP
标题Re: [请益] OO有没有可能这样写?
时间Wed Jun 13 21:05:54 2012
※ 引述《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
1F:→ kuAIpAI:推~~~~~~~~~~ 06/13 22:04