__call 當(dāng)要調(diào)用的方法不存在或權(quán)限不足時(shí),會(huì)自動(dòng)調(diào)用__call 方法。
__callStatic 當(dāng)調(diào)用的靜態(tài)方法不存在或權(quán)限不足時(shí),會(huì)自動(dòng)調(diào)用__callStatic方法。
__call($funcname, $arguments)
__callStatic($funcname, $arguments)
參數(shù)說(shuō)明:
$funcname String 調(diào)用的方法名稱。
$arguments Array 調(diào)用方法時(shí)所帶的參數(shù)。
__call 例子
?phphtml' target='_blank'>class Member{ protected $memberdata = array(); public function __call($func, $arguments){ list($type, $name) = explode( _ , $func); if(!in_array($type, array( set , get )) || $name== ){ return switch($type){ case set : $this- memberdata[$name] = $arguments[0]; break; case get : return isset($this- memberdata[$name])? $this- memberdata[$name] : break; default:class User extends Member{ public function show(){ if($this- memberdata){ foreach($this- memberdata as $key= $member){ echo $key. : .$member. br class Profession extends Member{ public function show(){ if($this- memberdata){ foreach($this- memberdata as $key= $member){ echo $key. : .$member. br $userobj = new User();$userobj- set_name( fdipzone $userobj- set_age(29);$userobj- show();$probj = new Profession();$probj- set_profession( IT SERVICE $probj- set_price(2500);$probj- show();?
__callStatic例子
?phpclass Member{ protected static $memberdata = array(); public static function __callStatic($func, $arguments){ list($type, $name) = explode( _ , $func); if(!in_array($type, array( set , get )) || $name== ){ return $feature = get_called_class(); switch($type){ case set : self::$memberdata[$feature][$name] = $arguments[0]; break; case get : return isset(self::$memberdata[$feature][$name])? self::$memberdata[$feature][$name] : break; default:class User extends Member{ public static function show(){ $feature = get_called_class(); if(self::$memberdata[$feature]){ foreach(self::$memberdata[$feature] as $key= $member){ echo $key. : .$member. br class Profession extends Member{ public static function show(){ $feature = get_called_class(); if(self::$memberdata[$feature]){ foreach(self::$memberdata[$feature] as $key= $member){ echo $key. : .$member. br User::set_name( fdipzone User::set_age(29);User::show();Profession::set_profession( IT SERVICE Profession::set_price(2500);Profession::show();? 本文講解了關(guān)于php __call 與 __callStatic 的內(nèi)容,更多相關(guān)知識(shí)請(qǐng)關(guān)注php 。
相關(guān)推薦:
關(guān)于memcached 常用命令及使用說(shuō)明
關(guān)于PHPMailer - PHP email transport class 的相關(guān)講解
關(guān)于PHP 遍歷文件夾及文件類及處理類 的理解
以上就是關(guān)于php __call 與 __callStatic 的內(nèi)容講解的詳細(xì)內(nèi)容,PHP教程
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。
新聞熱點(diǎn)
疑難解答
圖片精選