是否可以向函數添加方法?PHP向函數添加方法
例如:
<?
function func(){
;
}
//add method
func->test = function(){
;
}
func->test();
func();
我是從一個JavaScript背景的,因此,我已經習慣了「一切都是對象」。
編輯:
我只是解釋其中的誤解往往來自新phpers。我明白上面的代碼不起作用。
EDIT 2
想通了。
class myfunc_class{
function __invoke(){
//function body
}
function __call($closure, $args)
{
call_user_func_array($this->$closure, $args);
}
}
$func = new myfunc_class;
$func->test = function(){
echo '<br>test<br>';
};
$func->test();
$func();
即使性感:)
class func{
public $_function;
function __invoke(){
return call_user_func_array($this->_function,func_get_args());
}
function __construct($fun){
$this->_function = $fun;
}
function __call($closure, $args)
{
call_user_func_array($this->$closure, $args);
}
}
$func = new func(function($value){
echo $value;
});
$func->method = function(){
echo '<br>test<br>';
};
$func('someValue');
$func->method();
簡單的回答:沒有。 –
並非所有的讀者都能夠處理某種程度的抽象和示例性的描述。不過,我發現你的問題很好理解。 – hakre
JavaScript的對象處理是基於原型的。這與幾乎所有其他流行的編程語言都不同。如果JavaScript是唯一你知道的語言,那麼我很抱歉,但你有一些不懂的做法。 – staticsan