麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 開(kāi)發(fā) > PHP > 正文

php中的常用魔術(shù)方法匯總

2024-05-04 23:43:02
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
本文針對(duì)php中的常用魔術(shù)方法進(jìn)行了詳細(xì)的總結(jié)介紹,需要的朋友可以過(guò)來(lái)參考下
 

這篇文章詳細(xì)的對(duì)php中的常用魔術(shù)方法進(jìn)行了整理歸納,分享給大家供大家參考,具體內(nèi)容如下

1、PHP把所有”__”開(kāi)頭的方法當(dāng)做魔術(shù)方法,所以任何自定義的方法都不能是”__”開(kāi)頭
php提供的重載,是指動(dòng)態(tài)的創(chuàng)建屬性或方法。重載是通過(guò)魔術(shù)方法來(lái)實(shí)現(xiàn)的。這些魔術(shù)方法的參數(shù)不能飲用傳遞,__get(),__set(),__isset(),__unset(),實(shí)現(xiàn)類屬性重載。
2、當(dāng)訪問(wèn)類中不可訪問(wèn)的屬性時(shí),將調(diào)用__get()方法
3、當(dāng)訪問(wèn)類中不可訪問(wèn)的屬性時(shí),根據(jù)不同的情況會(huì)調(diào)用__get(),__set(),__isset(),__unset(),其中當(dāng)訪問(wèn)屬性 時(shí),使用函數(shù)isset()或empty()時(shí),將調(diào)用__isset()方法使用unset()函數(shù)時(shí),將調(diào)用__unset()方法。
4、這四個(gè)方法不能使用static關(guān)鍵詞定義,在php5.3.0后,一個(gè)warning級(jí)別的警告將發(fā)生,當(dāng)使用static方法定義這4個(gè)方法。
5、何謂不可訪問(wèn)的屬性:(1)類中沒(méi)有的屬性,(2)私有變量在類外被訪問(wèn)。方法重載,通過(guò)__call()和__callstatic()來(lái)實(shí) 現(xiàn),兩者的區(qū)別是一個(gè)上下文環(huán)境是否是靜態(tài)方法,后者在調(diào)用不可訪問(wèn)的靜態(tài)方法時(shí)會(huì)被調(diào)用。__callstatic()是在php5.3.0中才被添 加。
6、__sleep()和__wakeup()
serialize()序列化時(shí),會(huì)先檢查是否存在__sleep()函數(shù),如果存在,則先調(diào)用__sleep(),返回一個(gè)包含所有變量名稱的數(shù)組,如果該方法不返回任何內(nèi)容,則null被序列化,并產(chǎn)生一個(gè)notice級(jí)別的錯(cuò)誤。
__wakeup()方法和__sleep()相反,在調(diào)用unserialize()時(shí)被調(diào)用
7、__toString(),讓一個(gè)類決定它如何轉(zhuǎn)換成字符串,在php5.2.0之前,這個(gè)方法只能結(jié)合echo或print方法生效,php5.2.0之后,可以結(jié)合printf()修飾,但修飾的時(shí)候也不能用類似%d之類的非字符修飾符。
8、__invoke(),當(dāng)嘗試以調(diào)用函數(shù)的方式調(diào)用對(duì)象時(shí),將出發(fā)這個(gè)函數(shù),只在php5.3之后生效。
9、__set_state()靜態(tài)方法,當(dāng)調(diào)用var_export()的時(shí)候,才會(huì)調(diào)用這個(gè)靜態(tài)方法,php5.1.0之后生效。唯一參數(shù)是接收一個(gè)數(shù)組。
10、__construct()和__destruct(),構(gòu)造函數(shù)和析構(gòu)函數(shù),構(gòu)造函數(shù)主要用于類的初始化,析構(gòu)函數(shù)在某個(gè)對(duì)象的所有引用都 刪除后或者對(duì)象被顯示的銷毀時(shí)運(yùn)行。在析構(gòu)函數(shù)中不允許拋出異常,否則會(huì)出發(fā)一個(gè)fatal error,析構(gòu)函數(shù)在腳本結(jié)束時(shí)調(diào)用,此時(shí)所有的http header都已經(jīng)發(fā)出.
11、__clone(),對(duì)象復(fù)制,此方法不能直接被調(diào)用,必須通過(guò)clone關(guān)鍵字顯示調(diào)用

代碼:

//實(shí)例化對(duì)象時(shí),會(huì)調(diào)用對(duì)象的__construct方法$obj = new Object();//給對(duì)象不存在的屬性賦值時(shí),會(huì)調(diào)用對(duì)象的__set方法$obj->title = "hello";//使用對(duì)象不存在的屬性時(shí),會(huì)調(diào)用對(duì)象的__get方法echo $obj->title;//調(diào)用對(duì)象不存在的方法時(shí),會(huì)調(diào)用對(duì)象的__call方法$obj->test("hello",123,567);//調(diào)用不存在的類靜態(tài)方法時(shí),會(huì)調(diào)用類的__callStatic方法Object::staticMethod("static","not found method");//直接輸出對(duì)象時(shí),會(huì)調(diào)用對(duì)象的__toString方法echo $obj;//將一個(gè)對(duì)象當(dāng)作函數(shù)一樣使用時(shí),會(huì)調(diào)用對(duì)象的__invoke方法echo $obj("test");//克隆對(duì)象時(shí),會(huì)調(diào)用對(duì)象的__clone方法$obj2 = clone $obj;//判斷對(duì)象屬性是否存在時(shí),會(huì)調(diào)用對(duì)象的__isset方法var_dump(isset($obj->aaa));//銷毀對(duì)象屬性時(shí),會(huì)調(diào)用對(duì)象的__unset方法unset($obj->aaa);  class Object{   protected $array = array();   function __construct()  {    echo __METHOD__."你正在實(shí)例化對(duì)象<br>";  }   function __set($name, $value)  {    $this->array[$name]=$value;  }   function __get($name)  {    return $this->array[$name];  }   function __call($name, $arguments)  {    var_dump($name,$arguments);    return "magic function/n";  }   static function __callStatic($name, $arguments)  {    var_dump($name,$arguments);    return "magic static function";  }   function __toString()  {    return __CLASS__.'<br>';  }   function __invoke($arguments)  {    var_dump($arguments);    return __METHOD__.'<br>';  }   function __clone()  {    echo __METHOD__."你正在克隆對(duì)象<br>";  }   function __isset($name)  {    echo __METHOD__."你想判斷有沒(méi)有屬性".$name."<br>";    return 1;  }   function __unset($name)  {    echo __METHOD__."你想刪除屬性".$name."<br>";  }    function __destruct()  {    echo __METHOD__."你正在注銷對(duì)象<br>";  }   }

以上就是關(guān)于php中的常用魔術(shù)方法的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助。



注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到PHP教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产69精品久久99不卡免费版 | 国产一级做a爱片在线看免 2019天天干夜夜操 | 成年人网站国产 | 久久成人综合视频 | 欧美精品久久久久久久多人混战 | tube69xxxxxhd | 最近日本电影hd免费观看 | 亚洲一区动漫 | 亚洲精品午夜国产va久久成人 | 欧美日韩精品一区二区三区不卡 | 中文字幕亚洲情99在线 | 一区国产在线观看 | 免费毛片随便看 | 香蕉国产9| 91亚洲免费视频 | 久久精品日产高清版的功能介绍 | 免费a级毛片永久免费 | 欧美高清在线精品一区二区不卡 | 色视频91| 日韩视频精品一区 | 麻豆porn | 好吊一区二区三区 | 最近日本电影hd免费观看 | 欧洲黄色一级视频 | 成人毛片免费视频 | 国产一精品久久99无吗一高潮 | 日韩欧美高清片 | 精品久久久久久久久久久久久久久久久久久 | 成人黄色小视频在线观看 | 黄色影院在线看 | 日韩黄色片网站 | 久久精品2019中文字幕 | 成人一区二区在线观看视频 | 一级黄色在线免费观看 | 免费看操片 | 欧美一级小视频 | 黄色a级片视频 | 毛片一级片| 久久国产精品久久久久久久久久 | 视频一区 日韩 | 性猛交ⅹxxx乱巴西 在线播放中文 |