php 5.3 後新增了 __call 與__callstatic 魔法方法。
__call 當要呼叫的方法不存在或許可權不足時,會自動呼叫__call 方法。
__callstatic 當呼叫的靜態方法不存在或許可權不足時,會自動呼叫__callstatic方法。
__call($funcname, $arguments)
__callstatic($funcname, $arguments)
引數說明:
$funcnamestring 呼叫的方法名稱。
$argumentsarray 呼叫方法時所帶的引數。
[php]view plain
copy
? <?php
class
human
//魔術方法__call
/*$method 獲得方法名
$arg 獲得方法的引數集合
*/public
function
__call(
$method
,$arg
) //魔術方法__callstatic
public
static
function
__callstatic(
$method
,$arg
) }
$li=
newhuman();
$li->say(1,2,3);
/*呼叫乙個未定義的方法
fatal error: call to undefined method human::say() in d:\wamp\www\php\59.php on line 8
*/$li
->t(
'a',
'b');
/* __call是呼叫不可見(不存在或無許可權)的方法時,自動呼叫
$lisi->say(1,2,3);-----沒有say()方法----> __call('say',array(1,2,3))執行
*/human::cry('痛哭'
,'鬼哭'
,'號哭'
);
/* __callstatic 是呼叫不可見的靜態方法時,自動呼叫.
human::cry('a','b','c')----沒有cry方法---> human::__callstatic('cry',array('a','b','c'));
*/?>
對於魔術方法 call,
call方法在物件方法不存在的時候被呼叫 callstatic方法在呼叫物件靜態方法不存在的時候被呼叫 例如class car new car color class bus bus issale 其實上面的解釋在某些情況下是正確的。但是在一些特殊情形,如果按照這個解釋來理解,就會覺得結果不可思議了...
魔術方法之 call
1.call 作用,當呼叫不存在的方法時,會呼叫該方法。實際應用,當程式呼叫不存在的方法時,意外導致程式終止。或者當你呼叫了受保護的或者是私人的方法時,也會自動呼叫 call方法 結果 2.callstatic 形式 callstatic name,arr 應用場景 1 物件呼叫未定義的靜態函式時,...
魔術方法之 call與
class human 魔術方法 call param string method 獲得方法名 param string arg 獲得方法的引數集合 public function call method,params 魔術方法 callstatic public static function c...