gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区

站長資訊網
最全最豐富的資訊網站

五分鐘帶你了解PHP中的魔術方法(實例詳解)

在之前的文章中給大家帶來了《PHP中clone關鍵字和__clone()方法的使用(實例詳解)》,其中給大家詳細的介紹了PHP中的clone關鍵字和__clone()方法,本篇文章繼續給大家帶來PHP中的魔術方法,希望對大家有幫助!

五分鐘帶你了解PHP中的魔術方法(實例詳解)

在我們之前的文章中,我們介紹__clone()方法的時候提到,這是魔術方法的一種,《帶你分清類中的構造函數與析構函數》中也提到的構造函數與析構函數也叫作構造方法與析構方法,他們也是魔術方法的一種。那么什么是魔術方法?它有哪些常用的方法?它又是怎樣使用的?接下來我們一起來看一看吧。

PHP魔術方法

在PHP面向對象編程中,PHP里有一系列的魔術方法,這些魔術方法看看之前學習的__clone__construct__destruct我們能發現一個共同點,那就是它們都是由__兩個下劃線開始的,并且都是在某種特定的條件下自動調用的。

那接下來我們來看一看一些常用的魔術方法,結合實例來看一下它們的使用方法。

__set()方法

__set()方法用于在為當前環境下未定義或不可見的類屬性賦值時,需要注意的是所有的魔術方法,都是在某種特定條件下自動調用的,為當前環境下未定義或不可見的類屬性賦值時就是__set()方法調用的特定條件。

語法格式如下:

public function __set(要操作的變量, 要操作變量的值){     ... ... ; }

實例如下:

<?php     class father{         public $study1;         private $study2;         public function __set($key, $value){             echo '為“'.$key.'”賦值“'.$value.'”失敗!<br>';         }     }     $object          = new father();     $object -> study1  = '好好學習';     $object -> study2   = '天天向上';     $object -> study3 = '福如東海'; ?>

輸出結果:

五分鐘帶你了解PHP中的魔術方法(實例詳解)

由上述實例看出,當當前環境下未定義或不可見的類屬性賦值時,就會調用__set()方法。

__get()方法

自動調用 __get() 方法的特定條件是在調用或獲取當前環境下未定義或不可見的類屬性時,定義該方法的語法格式如下:

public function __get($name){     ... ... ; }

其中參數$name表示要操作的變量名稱,下面通過實例我們來看一下__get()方法的使用,實例如下:

<?php     class father{         public $study = '好好學習';         private $study1 = '天天向上';         public function __get($study1){             echo '獲取:“'.$study1.'”失敗!';         }     }     $object = new father();     echo $object -> study.'<br>';     echo $object -> study1.'<br>';     echo $object -> study2.'<br>'; ?>

輸出結果:

五分鐘帶你了解PHP中的魔術方法(實例詳解)

由上述結果可以看出在調用或獲取當前環境下未定義或不可見的類屬性時,會自動調用 __get() 方法。

__isset() 方法

自動調用 __isset() 方法的特定條件是當在類外部對類中不可訪問或不存在的屬性使用 isset()empty() 函數時,該方法的語法格式如下:

public function __isset($name){     ... ... ; }

其中我們需要注意的是:

參數 $name 為要訪問的屬性名稱。

  • isset() 函數是用來檢查一個變量是否存在并且還要判斷不為 NULL,如果傳入的變量存在則傳回 true,不存在傳回 false。

  • empty() 函數是用來檢查一個變量是否為空,如果變量的值等于 FALSE,那么這個變量會被認為不存在。

  • 如果想要使用 isset() 或 empty() 函數對類中的私有屬性進行檢測的話,我們只需要在類中添加一個 __isset() 方法就可以了,當在類外部使用 isset() 或 empty() 函數時,會自動調用類里面的 __isset() 方法。

接下來我們通過實例來看一下__isset()方法的使用,實例如下:

<?php     class father{         public $study = '好好學習';         private $name = '天天向上';         public function __isset($name){             if(property_exists('Website', $name)){                 echo '成員屬性:“'.$name.'”存在!<br>';             }else{                 echo '成員屬性:“'.$name.'”不存在!<br>';             }         }     }     $object = new father();     isset($object -> mother);     isset($object -> name); ?>

輸出結果:

五分鐘帶你了解PHP中的魔術方法(實例詳解)

其中我們需要注意的是,property_exists() 函數可以用來檢測類中是否定義了該屬性,語法格式為

 property_exists($class_name,$property_name)

其中 $class_name 為字符串形式的類名,即判斷類 class_name 中是否定義了 property_name 屬性。

__unset() 方法

自動調用__unset() 方法的特定條件是當在類外部對類中不可訪問或不存在的屬性使用 unset() 函數時,該方法的語法格式如下:

public function __unset($name){     ... ... ; }

其中我們需要注意的是:

  • 參數 $name 為要訪問的屬性名稱。

  • unset() 函數的作用是刪除指定的變量,需要傳入一個或多個變量作為參數,另外,該函數沒有返回值。

  • 可以使用 unset() 函數在類外部去刪除類中的成員屬性。如果要刪除類中的公有屬性的話直接使用 unset() 函數即可;

  • 如果要刪除類中的私有屬性的話,則需要在類中添加一個 __unset() 方法。

接下來我們通過實例來看一下__unset()方法的使用,實例如下:

<?php     class father{         public $name = 'http://c.biancheng.net/php/';         private $study = 'C語言中文網';         public function __unset($study){             if(property_exists('father', $study)){                 unset($this->$study);                 echo '移除成員屬性:“'.$study.'”成功!<br>';             }else{                 echo '成員屬性:“'.$study.'”不存在!<br>';             }         }     }     $object = new father();     unset($object->name);     unset($object->study);     unset($object->study1); ?>

輸出結果:

五分鐘帶你了解PHP中的魔術方法(實例詳解)

由上述實例看出當在類外部對類中不可訪問或不存在的屬性使用 unset() 函數時,__unset() 方法會被自動調用。

上述實例中給大家介紹了一些常用的魔術方法,但這并不是魔術方法的全部,那接下來再給大家列舉一些魔術方法:

  • __call() — 調用一個不存在的方法時自動調用

  • __sleep() — 使用 serialize 序列化時自動調用

  • __toString() — 把對象轉換成字符串時自動調用

  • __invoke() — 當嘗試把對象當方法調用時自動調用

  • __wakeup() — 使用 unserialize 反序列化時自動調用

  • __callStatic() — 調用一個不存在的靜態方法時自動調用

  • __debugInfo() — 使用 var_dump() 打印對象信息時自動調用

  • __set_state() — 當使用 var_export() 函數時自動調用,接受一個數組參數

大家如果感興趣的話,可以點擊《PHP視頻教程》進行

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
人妻有码中文字幕| 国产高潮呻吟久久久| 青少年xxxxx性开放hg| 99热手机在线| 91视频免费版污| 欧美日韩在线观看不卡| 天堂中文视频在线| 999精彩视频| 999这里有精品| 强开小嫩苞一区二区三区网站| 亚洲精品综合在线观看| 亚洲欧美一二三| 小泽玛利亚av在线| 国产 日韩 欧美在线| 秋霞无码一区二区| 国产超碰在线播放| 欧美视频亚洲图片| 丰满的少妇愉情hd高清果冻传媒| 国产手机免费视频| 另类小说第一页| 日本特黄在线观看| 国产一区二区视频播放| 天天干在线影院| 日韩不卡一二区| 欧美丰满熟妇bbbbbb百度| 国产主播中文字幕| 日本a在线天堂| 91热这里只有精品| 在线播放 亚洲| 欧美亚洲另类色图| av动漫免费观看| 久久久久久久久久久久久国产精品 | 免费一级特黄特色毛片久久看| 欧美在线观看成人| 久久久久久综合网| 欧美色图另类小说| 51xx午夜影福利| 国产精品wwwww| 国内自拍中文字幕| 亚洲精品20p| 精品国产免费av| 91视频成人免费| 浓精h攵女乱爱av| 亚洲 欧美 日韩 国产综合 在线| 五月婷婷之婷婷| 国产a级片免费观看| 国产精品久久久久久久久电影网| www.日本xxxx| 国内自拍在线观看| 男人添女人荫蒂免费视频| 亚洲黄色片免费看| 鲁一鲁一鲁一鲁一av| 青青在线视频观看| 波多野结衣综合网| 精品国偷自产一区二区三区| 日日夜夜精品视频免费观看| xx欧美撒尿嘘撒尿xx| 香蕉视频网站入口| 老熟妇仑乱视频一区二区| 欧美成人高潮一二区在线看| 欧美日韩中文字幕在线播放| 日本一区二区免费高清视频| 午夜剧场在线免费观看| 中文字幕一区二区三区四区在线视频| 丰满爆乳一区二区三区| 欧美乱大交xxxxx潮喷l头像| 日本老太婆做爰视频| 日本一本草久p| 91免费版看片| www污在线观看| 激情五月宗合网| 成年人视频在线免费| 久草综合在线观看| 超碰成人在线播放| 无码人妻aⅴ一区二区三区日本| 成年人网站av| 男人天堂手机在线视频| 青娱乐自拍偷拍| 青青在线免费观看视频| 天天干天天色天天干| 精品日韩在线播放| 国产午夜大地久久| 九九热免费在线观看| 日本黄网站色大片免费观看| 久久久国内精品| 88av.com| 中国一级黄色录像| 欧美大片在线播放| 天堂网在线免费观看| 成人毛片100部免费看| 18岁网站在线观看| www,av在线| 久久久久久久久久久99| 97超碰人人爽| 青青艹视频在线| 五月激情五月婷婷| 116极品美女午夜一级| 日本网站在线看| 成人三级视频在线播放| 午夜免费福利网站| 欧洲黄色一级视频| 男女激烈动态图| 欧美精品性生活| 成熟了的熟妇毛茸茸| 中文字幕在线视频一区二区| 成人午夜视频免费在线观看| 日本一道在线观看| 一区二区三区四区毛片| 国产淫片免费看| 99国产精品白浆在线观看免费| 亚洲娇小娇小娇小| 亚洲美免无码中文字幕在线| av电影一区二区三区| 狠狠操狠狠干视频| 亚洲精品中文字幕无码蜜桃| 精品少妇在线视频| 久久天天东北熟女毛茸茸| 免费看污污网站| 无码人妻丰满熟妇区五十路百度| 久久人人爽人人爽人人av| 中文字幕国产免费| 亚洲无吗一区二区三区| 国产精品亚洲a| 能在线观看的av| 成人免费观看毛片| 成年人网站大全| 亚洲国产精品久久久久爰色欲| 男人插女人视频在线观看| 野外做受又硬又粗又大视频√| 一级做a爱视频| 亚洲av毛片在线观看| 天天做天天爱天天高潮| 吴梦梦av在线| 国产日韩欧美大片| 日韩在线视频在线| 日本中文字幕网址| 欧美成人黑人猛交| 又色又爽又高潮免费视频国产| 一本久道中文无码字幕av| 欧美三级理论片| 日韩 国产 一区| 特级西西444| 日本精品免费在线观看| 天天碰免费视频 | 日韩人妻无码精品久久久不卡| 成年人视频网站免费| 国产美女网站在线观看| 人妻少妇被粗大爽9797pw| 91插插插插插插插插| 日本女人高潮视频| 国产3p露脸普通话对白| 毛片av免费在线观看| 不卡中文字幕在线| 自拍日韩亚洲一区在线| 污污网站在线观看视频| 日本一本中文字幕| 91淫黄看大片| 妺妺窝人体色www看人体| 国产成人久久婷婷精品流白浆| 国产无遮挡猛进猛出免费软件| 免费观看黄色的网站| 精品中文字幕av| 91精品国产三级| 37pao成人国产永久免费视频| www.久久久久久久久久久| 99er在线视频| 国产3p在线播放| 国产精品后入内射日本在线观看| 日韩av片免费观看| 日日碰狠狠丁香久燥| 久久www视频| 在线观看国产一级片| 91成人在线观看喷潮教学| 99视频在线观看视频| 中文字幕无码不卡免费视频| 999一区二区三区| 色男人天堂av| 午夜宅男在线视频| 国产肥臀一区二区福利视频| 国产高清不卡无码视频| 亚洲第一色av| 少妇激情一区二区三区| 欧美 日韩 国产在线观看| www国产免费| 免费观看国产视频在线| 日本高清免费观看| 91pony九色| 成年人三级黄色片| 亚洲 欧美 另类人妖| 国产理论在线播放| 国产 porn| 欧美男女交配视频| 潘金莲激情呻吟欲求不满视频| 蜜臀视频一区二区三区| 成人在线免费播放视频| 成人三级视频在线播放 | 成熟老妇女视频| 韩国一区二区av| 深夜黄色小视频| 亚洲黄色片免费|