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一区二区
久久久久xxxx| 成人免费xxxxx在线视频| 成年网站在线播放| 黄色av免费在线播放| 俄罗斯av网站| 北条麻妃在线一区| 国产视频一区二区视频| 老头吃奶性行交视频| www.精品在线| 久久久无码中文字幕久...| 欧美国产日韩在线视频| 成人在线免费高清视频| 欧美精品久久久久久久自慰 | www.av中文字幕| 久久精品免费一区二区| 国产wwwxx| 国产精品久久成人免费观看| 精品成在人线av无码免费看| 夫妻免费无码v看片| 色乱码一区二区三区在线| 三级黄色片免费看| 黄色国产一级视频| 99久久国产宗和精品1上映| 午夜激情视频网| 久久国产亚洲精品无码| 天堂在线中文在线| 18禁网站免费无遮挡无码中文| 免费日韩视频在线观看| 亚洲国产精品影视| 999精品网站| www.亚洲成人网| 欧美女同在线观看| 欧美v在线观看| 蜜臀在线免费观看| 亚洲免费av一区| 能在线观看的av| 欧美日韩dvd| www.污污视频| 欧美三级理论片| 自拍日韩亚洲一区在线| aaa免费在线观看| 天天干天天玩天天操| 欧美精品99久久| 毛片在线视频观看| 国产精品美女在线播放| 欧美精品性生活| 日日摸天天爽天天爽视频| 国产女主播自拍| 六月婷婷激情网| 蜜桃福利午夜精品一区| 黄色高清无遮挡| 国产在线精品91| 久久国产精品视频在线观看| dy888午夜| 国产高清精品软男同| 中文 日韩 欧美| 色婷婷综合网站| 在线看的黄色网址| 亚洲 激情 在线| 自拍偷拍一区二区三区四区| 无码无遮挡又大又爽又黄的视频| 国产午夜大地久久| 男人和女人啪啪网站| 精品少妇一区二区三区在线| 日本福利视频一区| 日本福利视频在线| 国产综合免费视频| 久久综合久久色| 九九热精品在线播放| 中文字幕22页| 亚欧美一区二区三区| 无颜之月在线看| 国产午夜伦鲁鲁| 日本肉体xxxx裸体xxx免费| 亚洲综合激情视频| 丰满人妻一区二区三区53号| av网站手机在线观看| 国产69精品久久久久久久| 日本三级免费观看| 在线观看免费av网址| 日本国产中文字幕| 成人在线免费观看av| 亚洲另类第一页| 亚洲精品天堂成人片av在线播放 | 伊人再见免费在线观看高清版| 成人免费在线视频播放| 日本免费黄视频| 色噜噜狠狠一区二区三区狼国成人| 咪咪色在线视频| 亚洲自偷自拍熟女另类| 久久成年人网站| 国产黄色一级网站| 一区二区三区国产好的精华液| 男女日批视频在线观看| 美女喷白浆视频| 韩国无码av片在线观看网站| 国产一区视频免费观看| 狠狠精品干练久久久无码中文字幕| 久久久久久久久久网| 咪咪色在线视频| 黄色国产小视频| 日韩精品免费一区| 最近中文字幕一区二区| 成人免费性视频| 老汉色影院首页| 视频在线观看免费高清| 97在线免费公开视频| 成年丰满熟妇午夜免费视频 | 日本不卡在线观看视频| 日本成人性视频| 久久久久国产一区| aⅴ在线免费观看| 日韩精品一区在线视频| 午夜影院免费版| 老司机午夜性大片| 日韩精品一区中文字幕| 人妻熟妇乱又伦精品视频| 水蜜桃在线免费观看| 亚洲自拍第三页| 色戒在线免费观看| 亚洲熟妇av一区二区三区 | 欧美激情国产精品日韩| www.99r| 黄色影院一级片| 妺妺窝人体色www看人体| 999热精品视频| 国产三级精品三级在线| 免费观看国产视频在线| 国产区二区三区| 成年网站在线免费观看| 国产精品无码av在线播放| 99久久免费观看| 成年人网站国产| 男女激情无遮挡| 久久久久久久久久福利| 久久久久久久久久福利| 在线免费观看av的网站| 欧美日韩一区二区三区69堂| 色噜噜狠狠一区二区| 亚洲五月激情网| www.18av.com| 日韩黄色片视频| 波多野结衣xxxx| 麻豆传媒网站在线观看| 亚洲理论电影在线观看| 久久久久久久久久久免费视频| 青青草av网站| 色哺乳xxxxhd奶水米仓惠香| 黄网站色视频免费观看| 日本a级片免费观看| 日日干日日操日日射| 高清无码一区二区在线观看吞精| 欧美亚洲日本一区二区三区| 欧美激情精品久久久久久小说| 777一区二区| 国产玉足脚交久久欧美| 一道本视频在线观看| 日本福利视频网站| 男人天堂成人在线| 老司机午夜网站| 日韩中文字幕免费在线| 青青草免费在线视频观看| 玩弄japan白嫩少妇hd| 久久久精品视频国产| www国产黄色| 中文字幕色呦呦| www.cao超碰| 成年人视频网站免费观看| 成人免费看片视频在线观看| www.日日操| 欧美亚洲色图视频| av中文字幕网址| 男女啪啪网站视频| 日本韩国欧美在线观看| 在线观看三级网站| 亚欧激情乱码久久久久久久久| 麻豆tv在线播放| 91大学生片黄在线观看| 亚洲欧美日韩三级| 88av.com| 农村妇女精品一二区| 男人添女荫道口图片| 国产福利片一区二区| 国产一伦一伦一伦| 黄色片在线免费| 不卡影院一区二区| 国产主播在线看| 黄色av网址在线播放| 国产精品国三级国产av| 日韩av福利在线观看| 手机av在线免费| 免费一区二区三区在线观看| 国产精品69页| 污版视频在线观看| 中文字幕国内自拍| www.日本xxxx| 九一精品久久久| ijzzijzzij亚洲大全| 4444在线观看| 成人性免费视频|