日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

PHP基礎(chǔ)之類和對(duì)象15——魔術(shù)方法

瀏覽:23日期:2022-09-14 18:39:41
?__construct(),__destruct(),__call(),__callStatic(),__get(),__set(),__isset(),__unset(),__sleep(),__wakeup(),__toString(),__invoke(),__set_state()和?__clone()?等方法在 PHP 中被稱為'魔術(shù)方法'(Magic methods)。在命名自己的類方法時(shí)不能使用這些方法名,除非是想使用其魔術(shù)功能。

PHP 將所有以 __(兩個(gè)下劃線)開(kāi)頭的類方法保留為魔術(shù)方法。所以在定義類方法時(shí),除了上述魔術(shù)方法,建議不要以 __ 為前綴。

__sleep()?和?__wakeup()

publicarray__sleep?( void )

void__wakeup?( void )

serialize( )?函數(shù)會(huì)檢查類中是否存在一個(gè)魔術(shù)方法?__sleep( )。如果存在,該方法會(huì)先被調(diào)用,然后才執(zhí)行序列化操作。此功能可以用于清理對(duì)象,并返回一個(gè)包含對(duì)象中所有應(yīng)被序列化的變量名稱的數(shù)組。如果該方法未返回任何內(nèi)容,則?NULL?被序列化,并產(chǎn)生一個(gè)?E_NOTICE?級(jí)別的錯(cuò)誤。

注意:

__sleep()?不能返回父類的私有成員的名字。這樣做會(huì)產(chǎn)生一個(gè)?E_NOTICE?級(jí)別的錯(cuò)誤。可以用?Serializable?接口來(lái)替代。

__sleep()?方法常用于提交未提交的數(shù)據(jù),或類似的清理操作。同時(shí),如果有一些很大的對(duì)象,但不需要全部保存,這個(gè)功能就很好用。

與之相反,?unserialize()?會(huì)檢查是否存在一個(gè)?__wakeup()?方法。如果存在,則會(huì)先調(diào)用?__wakeup?方法,預(yù)先準(zhǔn)備對(duì)象需要的資源。

__wakeup()?經(jīng)常用在反序列化操作中,例如重新建立數(shù)據(jù)庫(kù)連接,或執(zhí)行其它初始化操作。

Example #1 Sleep 和 wakeup

class Connection{ protected $link; private $server,$username,$password,$db; public function __construct($server,$username,$password,$db) {$this->server = $server;$this->username = $username;$this->password = $password;$this -> db = $db;$this -> connect(); } private function connect(){$this -> link = mysql_connect($this->server,$this->username,$this->password);mysql_select_db($this->db,$this->link); } public function __sleep(){return array(’server’,’username’,’password’,’db’); } public function __wakeup(){$this->connect(); }}__toString()

public string?__toString?( void )

__toString()?方法用于一個(gè)類被當(dāng)成字符串時(shí)應(yīng)怎樣回應(yīng)。例如?echo $obj;?應(yīng)該顯示些什么。此方法必須返回一個(gè)字符串,否則將發(fā)出一條?E_RECOVERABLE_ERROR?級(jí)別的致命錯(cuò)誤。

不能在?__toString()?方法中拋出異常,這么做會(huì)導(dǎo)致致命錯(cuò)誤。

Example #2 簡(jiǎn)單示例

class TestClass{ public $foo; public function __construct($foo) {$this->foo = $foo; } public function __toString(){return $this->foo; }}$class = new TestClass(’Hello’);echo $class;

輸出結(jié)果:

Hello

需要指出的是在 PHP 5.2.0 之前,__toString()?方法只有在直接使用于?echo?或?print?時(shí)才能生效。PHP 5.2.0 之后,則可以在任何字符串環(huán)境生效(例如通過(guò)?printf(),使用?%s?修飾符),但不能用于非字符串環(huán)境(如使用?%d?修飾符)。自 PHP 5.2.0 起,如果將一個(gè)未定義?__toString()?方法的對(duì)象轉(zhuǎn)換為字符串,會(huì)產(chǎn)生?E_RECOVERABLE_ERROR?級(jí)別的錯(cuò)誤。

__invoke()

mixed__invoke?([?$...?] )

當(dāng)嘗試以調(diào)用函數(shù)的方式調(diào)用一個(gè)對(duì)象時(shí),__invoke()?方法會(huì)被自動(dòng)調(diào)用。

注意:

本特性只在 PHP 5.3.0 及以上版本有效。

Example #3 使用?__invoke()

class CallableClass{ function __invoke($x){var_dump($x); }}$obj = new CallableClass;$obj(5);var_dump(is_callable($obj));

輸出結(jié)果:

int(5)

bool(true)

__set_state()

static object?__set_state?( array?$properties?)

自 PHP 5.1.0 起當(dāng)調(diào)用?var_export()?導(dǎo)出類時(shí),此靜態(tài)方法會(huì)被調(diào)用。

本方法的唯一參數(shù)是一個(gè)數(shù)組,其中包含按?array(’property’ => value, ...)?格式排列的類屬性。

Example #4 使用?__set_state()>(PHP 5.1.0 起)

class A{ public $var1; public $var2; public static function __set_state($an_array) {$obj = new A;$obj -> var1 = $an_array[’var1’];$obj -> var2 = $an_array[’var2’];return $obj; }}$a = new A;$a->var1 = 5;$a->var2 = ’foo’;eval(’$b=’.var_export($a,true).’;’);var_dump($b);

輸出結(jié)果:

object(A)#2 (2) { ['var1']=> int(5) ['var2']=> string(3) 'foo' }

標(biāo)簽: PHP
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲www啪成人一区二区| 日韩激情一二三区| 欧美精品中文字幕亚洲专区| 亚洲专区视频| 日韩视频1区| 亚洲一级大片| 免费在线看一区| 奶水喷射视频一区| 五月激激激综合网色播| 亚洲精品成人一区| 国产精品午夜av| 日本久久黄色| 香蕉久久99| 日韩精品一级中文字幕精品视频免费观看 | 免费观看日韩电影| 亚洲久草在线| 91欧美极品| 国产精品久久久久久久免费观看 | 亚洲精品系列| 麻豆国产精品一区二区三区| 久久精品二区亚洲w码| 久久天堂av| 日日摸夜夜添夜夜添国产精品| 国产精品成人一区二区网站软件| 超碰超碰人人人人精品| 国内精品99| 神马日本精品| 视频一区二区不卡| 青青草国产精品亚洲专区无| 国产探花一区二区| 97精品国产福利一区二区三区| av在线日韩| 日韩一区二区三区在线看| 欧美精品福利| 神马日本精品| 麻豆久久久久久| 黑丝一区二区| 精品久久久久中文字幕小说| 久久国产99| 天堂8中文在线最新版在线| 伊人久久亚洲| 亚洲成人不卡| 免费在线观看一区| 日韩综合小视频| 好吊一区二区三区| 一区二区三区四区日本视频| 国产丝袜一区| 日韩1区2区3区| 免费精品视频在线| 欧美特黄视频| 欧美成人基地| 久久九九99| 亚洲国产专区| 99热国内精品| 久久精品在线| 亚洲手机在线| 国产日韩电影| 美女网站视频一区| 日本少妇一区| 日韩精品免费一区二区在线观看 | 夜夜精品视频| 99综合视频| 麻豆精品蜜桃| 狠狠色狠狠色综合日日tαg| 黄色亚洲免费| 欧美国产91| 国产综合欧美| 亚洲激情黄色| 亚洲综合精品四区| 最新国产精品视频| 免费久久精品| 中文字幕亚洲影视| 视频在线观看一区| 免费av一区二区三区四区| 久久久久久久久久久妇女| 国产中文欧美日韩在线 | 久久久久久免费视频| 九一国产精品| 亚洲精品护士| 国产精品超碰| 久久在线电影| 中文字幕av亚洲精品一部二部| 中文字幕日韩欧美精品高清在线| 激情自拍一区| 国产精品毛片| 欧美一级全黄| 国产成人免费视频网站视频社区| 国产极品嫩模在线观看91精品| 国产乱人伦精品一区| 久久国产日韩欧美精品| 美女视频网站久久| www在线观看黄色| 热久久国产精品| 欧美精品中文字幕亚洲专区| 国产精品久久久久久av公交车| 欧美国产日韩电影| 欧美激情在线精品一区二区三区| 国产剧情一区二区在线观看| 欧美午夜三级| 色婷婷综合网| 欧美日韩视频| 久久亚洲黄色| 中文字幕日韩亚洲| 国产精品对白久久久久粗| 亚洲毛片在线免费| 久久影院资源站| 九九综合九九| 里番精品3d一二三区| 视频一区二区国产| 超碰在线99| 国产欧美啪啪| 亚洲一区欧美二区| 九色porny丨国产首页在线| 一二三区精品| 动漫av一区| 日韩激情网站| 欧美特黄视频| 久久黄色影院| 国产专区精品| 国产精品99精品一区二区三区∴| 国产亚洲亚洲| 99久久精品网| 国产91欧美| 欧美激情在线精品一区二区三区| 伊人久久大香伊蕉在人线观看热v| 日韩福利一区| 韩国一区二区三区视频| 日韩激情啪啪| 国产精品嫩草99av在线| 欧美一区二区三区激情视频| 精品视频国产| 麻豆视频久久| 久久精品三级| 久久这里只有| 国产一区丝袜| 美女久久99| 精品理论电影在线| 国产一区二区三区不卡av| 国产视频网站一区二区三区| 亚洲精品人人| 欧美日韩一区二区三区在线电影| 日本一区二区三区视频在线看| 亚州国产精品| 日韩中文字幕不卡| 美女精品一区| 日韩中文字幕亚洲一区二区va在线 | 日韩在线不卡| 国产高清一区二区| 羞羞答答国产精品www一本| 91tv亚洲精品香蕉国产一区| 欧美在线91| 一区二区三区四区日韩| 亚洲毛片在线| 精品中文在线| 亚洲精品极品少妇16p| 青青草国产精品亚洲专区无| 国产精品毛片一区二区在线看| 欧美成人亚洲| 国产精品www.| 99热精品久久| 夜久久久久久| 国产精品麻豆久久| 亚洲另类黄色| 日韩天堂在线| 国产精品任我爽爆在线播放| 亚洲91久久| 欧美精品第一区| 宅男噜噜噜66国产日韩在线观看| 国产成人在线中文字幕| 国产福利亚洲| 欧美亚洲三级| 精品一区亚洲| 中文字幕一区二区三区在线视频| 一区二区亚洲视频| av资源亚洲| 国产日韩欧美高清免费| 国产区精品区| 每日更新成人在线视频| 国产一区亚洲| 99久久激情| 午夜精品福利影院| 香蕉人人精品| 黑丝一区二区| 久久精品日韩欧美| 免费在线观看日韩欧美| 精品一区91| 久久国产小视频| 国产欧美一级| 欧美精品一线| 麻豆中文一区二区| 日本午夜精品久久久久| 国产精品99精品一区二区三区∴ | 久久99国产精品视频| 99久久激情| 国产日韩高清一区二区三区在线 | 日韩av午夜在线观看| 免费久久99精品国产自在现线| 日本成人一区二区| 日韩激情啪啪| 视频一区二区三区在线|