成人怡红院-成人怡红院视频在线观看-成人影视大全-成人影院203nnxyz-美女毛片在线看-美女免费黄

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

五分鐘帶你了解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號
50多岁岳不让我戴套| 无码专区6080YY免费视频| 国产乱子夫妻XX黑人XYX真爽| 亚洲码欧美码一区二区三区| 免费A级毛片18禁网站APP| 爱丫爱丫影院在线观看视频| 色一情一乱一乱一区91Av| 精品无码国产污污污在线观看| 国产精品乱码久久久久久软件| 宝贝把腿开大让我添添电影| 被猛男房东CAO到哭H| 野花香电视剧全集免费观看| 欧美黑人又大又粗XXXX| 人妻无码中文字幕| 天堂√最新版中文在线天堂| 无人区码一码二码三码是什么| 亚洲国产精品线路久久| 越南少妇毛茸茸的大BBW| 99精品久久久久中文字幕| 从厨房一路顶撞到卧室门好吗| 中年人妻丰满AV无码久久不卡| CAOPORN免费视频在线| 国产SM鞭打折磨调教视频| 白丝JK高潮喷水在线观看| 国产成人AV无码专区亚洲AV| 黑人巨大猛烈捣出白浆视频在线| 久久精品国产久精国产思思| 欧美性爱操逼大鸡吧| 免费观看A级毛片| 日本H纯肉无遮掩3D动漫在线观| 玩弄漂亮少妇高潮白浆| 亚洲人成网7777777国产| 亚洲V国产V天堂A无码二区| 正在播放熟妇群老熟妇456| 成人乱码一区二区三区四区| 成人毛片一区二区| 国内精品自线一区麻豆| 免费A级毛片无码免费视频120| 少妇人妻系列1~100| 亚洲熟妇AV一区二区三区漫画 | 岳丰满多毛的大隂户老太的介绍| 草草地址线路①屁屁影院成人| 国精产品W灬源码1688在线| 免费看黄的成人APP| 天天槽夜夜槽槽不停| 亚洲伊人久久综合| 成熟丰满熟妇高潮XXXXX91| 精品国产乱码久久久久久1区2区| 屁屁影院CCYY备用地址| 亚洲AV日韩AV无码AV一区二| 香港三日本8A三级少妇三级99| 中文乱码字幕视频观看网站免费| 国产V亚洲V欧美V专区| 久久永久免费人妻精品直播| 双腿被绑成M型调教PⅠAY照片| 樱桃空空人妻无码内射| 中文字幕无码肉感爆乳在线| 国产精品V欧美精品∨日韩| 国产天堂亚洲国产碰碰| 内射猛交XXXXⅩX最新消息| 无码人妻少妇久久中文字幕蜜桃 | 老公带朋友来家里C我怎么办| 少妇被又大又粗又爽毛片| 又粗又大内射免费视频小说| 中文字幕人成人乱码亚洲影| 国产精品久久无码一区二区三区网| 迈开腿让我尝一下你的味道一| 午夜成人亚洲理伦片在线观看| FREE东北熟女HD自拍| 精品国产污污免费网站| 色综合色欲色综合色综合色综合R| 伊人久久亚洲综合AV影院| 国产精品亚洲A∨天堂| 欧美性生交XXXXX久久久| 色综合99久久久无码国产精品| 伊人色综合一区二区三区| 国产精品国产三级国产A| 欧美私人家庭影院| 亚洲一区蜜桃视频在线| 国产精品无码A∨精品影院APP| 奇米第四色777ME| 野花视频最新免费完整版在线观看 | 孽火(硬汉)今又| 亚洲红杏第一AV网站| 国产96在线 | 欧美| 欧美成人v片一区二区三区激情| 亚洲乱码一区二三四区AVA| 国产成人午夜福利在线小电影| 好男人观看免费视频2019| 日韩精品人妻一区二区三区| 18禁成年无码免费网站| 成熟妇女一区av| 母亲とが话しています播放| 亚洲精品午夜国产VA久久成人| 97免费人妻在线视频| 久久96热在精品国产高清| 欧美人妇做爰XXXⅩ性高| 亚洲中文字幕爆乳人妻| 国精产品一码二码三M| 三个女儿一锅烩大团圆全文阅读| 18禁止看的免费污网站| 久久精品亚洲成在人线AV麻豆| 青春草无码精品视频在线观看| 一区二区三区四区黄色网站| 国色天香网WWW在线观看| 四虎成人WWW成人影院| 成年女人喷潮毛片免费播放| 欧美成人精品高清在线播放| 曰韩欧美群交P片内射| 九九真实偷窥短视频| 亚洲AV无码久久寂寞少妇| 国产精品乱码久久久久久小说 | 亚洲AV日韩AV永久无码色欲 | 无码人妻丰满热妇又大又粗 | [中文] [3D全彩H漫]新来| 成人爽A毛片免费网站| 欧美亚洲日韩AⅤ在线观看| 中文字幕一区二区三区久久网站 | 好黄好污美女裸体网站| 午夜福利一区二区三区在线观看| 国产成人无码VA在线观看| 色多多WWW视频在线观看免费| 边做饭边被躁BD苍井空小说| 人妻系列无码专区69影院| JZZIJZZIJ亚洲乱熟无码| 欧美人与性动交XXⅩXX| 97丨九色丨国产人妻▌| 能在线观看的一区二区三区| 1000部又爽又黄无遮挡的视频| 久久综合九色综合网站| 夜夜躁日日躁狠狠久久AV| 久久久受WWW免费人成| 夜夜爽77777妓女免费看| 久久久久久久精品免费老鸭窝 | 天天做天天爱夜夜爽毛片毛片| 给老子叫 老子喜欢听| 私人IMAX情侣影院家庭影院| 国产播放隔着超薄丝袜进入| 无码精品人妻一区二区三区涩爱| 国产精品拍天天在线| 无遮挡粉嫩小泬久久久久久久久 | 成人国产亚洲精品A区| 日韩论理论片在线观看| 亚洲综合欧美色五月俺也去| 久久婷婷成人综合色综合| 伊人久久大香线蕉综合AV| 妺妺窝人体色WWW在线一| 99久久精品免费看国产一区二区| 欧美性受XXXX88喷潮| 成人年无码AV片在线观看| 少妇伦子伦精品无码STYLES| 国产精品乱码久久久久久小说| 亚洲AV永久青草无码精品| 久久精品无码一区二区无码| 最新国产成人无码久久| 人妻无码久久精品人妻| 国产98在线 | 欧洲| 性色ΑV一二三天美传媒| 精品无码国产自产拍在线观看蜜| 影音先锋日日狠狠久久| 欧美日韩人妻精品一区在线| 多毛小姐BGMBGMBGM| 小12国产萝裸体视频福利| 九九99久久精品国产| 中国新疆XXXXXL19D| 人人妻人人爽人人爽| 国产精品VA无码一区二区| 亚洲成av人在线观看| 美女扒开腿让男人桶爽30分钟| 把腿张开老子臊烂你的小说| 无码人妻精品丰满熟妇区| 精品久久香蕉国产线看观看亚洲| 无码国产精品一区二区免费16| 韩国三级丰满少妇高潮| 野花日本大全免费观看版动漫 | 熟女体下毛毛黑森林| 黑人双人RAPPER剧情介绍| 一区二区无码在线视频| 人人妻人人澡人人爽人人| 国产精品亚洲А∨无码播放不卡| 亚洲精品无码不卡| 男生晚上睡不着想看B站| 国产50岁老熟女网站| 亚洲欧美日韩国产综合V| 欧美色成人综合天天影院| 国产成人一区二区三区视频免费 | 阿娇13分钟视频无删减MP4| 无码国内精品久久综合88 | 亚洲久热无码AV中文字幕| 年轻漂亮的人妻被公侵犯BD免费 | SEERX性欧美老妇| 无码熟妇人妻AV影片在线| 久久人人爽人人爽人人片AV麻烦| 被滋润的娇妻疯狂呻吟| 亚洲AV无码一区二区三区DV| 男人用嘴添女人下身免费视频| 国产极品美女高潮无套在线观看| 一区二区三区AV波多野结衣| 搡BBBB搡BBBB搡BBBB| 久久精品无码专区免费东京热|