亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

PHP中的常見魔術方法功能作用及用法

2020-03-22 19:14:02
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了關于PHP中的常見魔術方法功能作用及用法,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

 

概述

html' target='_blank'>面向對象編程中,PHP提供了一系列的魔術方法,這些魔術方法為編程提供了很多便利。PHP中的魔術方法通常以__(兩個下劃線)開始,并且不需要顯示的調用而是由某種特定的條件出發。

開始之前

在總結PHP的魔術方法之前先來定義兩個類,以便后邊示例使用:

 ?phpclass Device{ public $name,$battery,$data = [],$connection; protected function connect(){ $this- connection = resource echo $this- name. connected .PHP_EOL; protected function disconnect(){  $this- connection = null;  echo $this- name. disconnected .PHP_EOL;}

Device類有四個成員屬性和兩個成員方法。

 ?php class Battery{ private $charge = 0; public function setCharge($charge){ $charge = (int)$charge; if($charge 0){ $charge = 0; }else if($charge 100){  $charge = 100; } $this- charge = $charge;}

Battery類有一個成員屬性和一個成員方法。

構造函數和析構函數

構造函數和析構函數分別在對象創建和銷毀時被調用。對象被“銷毀”是指不存在任何對該對象的引用,比如引用該對象的變量被刪除(unset)、重新賦值或腳本執行結束,都會調用析構函數。

__construct()

__construct()構造函數是目前為止最經常使用的函數。在創建對象時,可以在構造函數中做一些初始化工作??梢詾闃嬙旌瘮刀x任意多個參數,只要在實例化時傳入對應個數的參數即可。構造函數中出現的任何異常都會阻止對象的創建。

 ?phpclass Device{ public $name,$battery,$data = [],$connection; public function __construct(Battery $battery,$name){ $this- battery = $battery; $this- name = $name; $this- connect(); } protected function connect(){  $this- connection = resource  echo $this- name. connected .PHP_EOL; } protected function disconnect(){  $this- connection = null;  echo $this- name. disconnected .PHP_EOL;}

上面的示例代碼中,Device類的構造函數為成員屬性賦值并且調用了connect()方法。

將構造函數聲明為私有方法,可以防止在類外部創建對象,這在單利模式中經常使用。

__desctruct()

析構函數通常在對象被銷毀時調用,析構函數不接收任何參數。經常在析構函數中執行一些清理工作,比如關閉數據庫連接等。

__get()

魔術方法__get()在我們嘗試訪問一個不存在的屬性時會被調用。它接收一個參數,該參數表示訪問屬性的名字,并且將該屬性的值返回。在上面的Device類里,有一個data屬性,該屬性就在這里就起了作用,如下面得代碼:

 ?php class Device{ public $name,$battery,$data = [],$connection; public function __construct(Battery $battery,$name){ $this- battery = $battery; $this- name = $name; $this- connect(); } protected function connect(){  $this- connection = resource  echo $this- name. connected .PHP_EOL; protected function disconnect(){  $this- connection = null;  echo $this- name. disconnected .PHP_EOL;$battery = new Battery();$device = new Device($battery, mac echo $device- //Notice: Undefined property: Device::$aaa
 ?phpheader( Content-type: text/html; charset=utf-8 class Device{ public $name,$battery,$data = [],$connection; public function __construct(Battery $battery,$name){ $this- battery = $battery; $this- name = $name; $this- connect(); public function __get($name){  if(array_key_exists($name,$this- data)){  return $this- data[$name]; return 屬性不存在  protected function connect(){  $this- connection = resource  echo $this- name. connected .PHP_EOL; } protected function disconnect(){  $this- connection = null;  echo $this- name. disconnected .PHP_EOL;}$battery = new Battery();$device = new Device($battery, mac echo $device- //macconnected 屬性不存在

該魔術方法最常用的地方就是通過創建一個“只讀”的屬性來擴展訪問控制。在上面的Battery類中,有一個私有屬性$charge,我們可以通過__get()魔術方法將該屬性擴展為在類外部可讀但不能修改。代碼如下:

 ?php class Battery { private $charge = 0;  public function __get($name) {  if(isset($this- $name)) {  return $this- $name; return null;}

__set()

__set()魔術方法在我們嘗試修改一個不可訪問的屬性時會被調用,它接收兩個參數,一個表示屬性的名字,一個表示屬性的值。示例代碼如下:

 ?phpheader( Content-type: text/html; charset=utf-8 class Device{ public $name,$battery,$data = [],$connection; public function __construct(Battery $battery,$name){ $this- battery = $battery; $this- name = $name; $this- connect(); public function __get($name){  if(array_key_exists($name,$this- data)){  return $this- data[$name]; return 屬性不存在  public function __set($name,$value){  $this- data[$name] = $value; } protected function connect(){  $this- connection = resource  echo $this- name. connected .PHP_EOL; } protected function disconnect(){  $this- connection = null;  echo $this- name. disconnected .PHP_EOL;}$battery = new Battery();$device = new Device($battery, mac $device- aaa = 哈哈 echo $device- //macconnected 哈哈        

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久免费精品| 久久久免费观看视频| 欧美日韩第一视频| 欧美裸体xxxxx| 久久6免费高清热精品| 欧美综合激情网| 中文字幕av一区二区三区谷原希美| 91手机视频在线观看| 国产精品爱久久久久久久| 亚洲一区二区三区在线视频| 欧美成人精品一区二区三区| 久久久久一本一区二区青青蜜月| 一区二区成人av| 成人xvideos免费视频| 神马国产精品影院av| 欧美极品少妇xxxxⅹ裸体艺术| 欧美黄色免费网站| 一区二区三区美女xx视频| 亚洲精品中文字幕有码专区| 成人免费大片黄在线播放| 久久婷婷国产麻豆91天堂| 激情久久av一区av二区av三区| 1769国内精品视频在线播放| 68精品国产免费久久久久久婷婷| 欧美高清视频在线| 精品成人av一区| 国产欧美日韩丝袜精品一区| 国模叶桐国产精品一区| 亚洲国语精品自产拍在线观看| 全亚洲最色的网站在线观看| 日本老师69xxx| 亚洲最新av在线| 日韩欧美第一页| 亚洲国产私拍精品国模在线观看| 国产精品久久久亚洲| 欧美亚洲视频一区二区| 成人福利网站在线观看| 国产精品第七十二页| 中文字幕亚洲综合久久| 成人做爽爽免费视频| 国产97人人超碰caoprom| 国产精品都在这里| 在线电影av不卡网址| 国产91精品青草社区| 精品视频在线观看日韩| 国产精品美女www爽爽爽视频| 欧美大片在线免费观看| 亚洲国产精品人久久电影| 亚洲一级黄色片| 精品视频久久久久久久| 国产亚洲一区二区在线| 一夜七次郎国产精品亚洲| 中文字幕日韩精品在线观看| 97成人精品视频在线观看| 欧美黑人又粗大| 久久久999精品| 自拍偷拍亚洲在线| 欧美精品久久久久| 97热在线精品视频在线观看| 欧美性在线视频| 国产丝袜一区视频在线观看| 国产一区二区三区18| 91久久精品日日躁夜夜躁国产| 一本色道久久88综合亚洲精品ⅰ| 亚洲高清一二三区| 日韩美女免费线视频| xxxx欧美18另类的高清| 日韩av电影在线免费播放| 欧美极品第一页| 国产欧美一区二区三区久久| 国产综合色香蕉精品| 日韩欧美国产成人| 欧美日韩在线视频首页| 国产精品午夜国产小视频| 国产成人精品在线| 国产精品色婷婷视频| 亚洲三级 欧美三级| 亚洲免费人成在线视频观看| 一区二区三区精品99久久| 亚洲国产精品成人av| 国产精品一区二区av影院萌芽| 国产91色在线免费| 欧美高跟鞋交xxxxxhd| 欧美最顶级丰满的aⅴ艳星| 成人黄色网免费| 91精品国产网站| 国内精品400部情侣激情| 国产精品久久久久久久久久久久久| 欧美激情啊啊啊| 亚洲aⅴ日韩av电影在线观看| 成人黄色在线免费| 亚洲女人天堂av| 亚洲精品91美女久久久久久久| 欧美电影在线播放| 最近2019中文字幕第三页视频| 中文字幕精品国产| 精品国产91乱高清在线观看| 亚洲一区中文字幕在线观看| 亚洲天堂网站在线观看视频| 欧美丰满片xxx777| 羞羞色国产精品| 亚洲**2019国产| 亚洲的天堂在线中文字幕| 日韩二区三区在线| 久久国产色av| 国产精品影院在线观看| 亚洲精品国产成人| 国产精品专区一| 久久成年人视频| 亚洲午夜精品久久久久久久久久久久| 中文字幕不卡在线视频极品| 国内精品伊人久久| 久久亚洲精品一区二区| 亚洲色无码播放| 国产精品第二页| 日韩高清免费观看| 国产精品久久久久久久av大片| 欧美在线观看日本一区| 亚洲乱码国产乱码精品精| 97成人超碰免| 另类天堂视频在线观看| 国产精国产精品| 亚洲成人久久一区| 国产97在线亚洲| 久久亚洲国产精品| 欧美精品国产精品日韩精品| 亚洲女人被黑人巨大进入| 久久五月情影视| 欧美激情a∨在线视频播放| 8x拔播拔播x8国产精品| 97在线免费观看视频| www.亚洲男人天堂| 中文字幕亚洲在线| 欧美日韩色婷婷| 这里只有精品在线播放| 欧美放荡办公室videos4k| 久久精品国产成人精品| 91精品国产99久久久久久| 欧美日韩在线视频一区| 中文字幕日韩电影| 成人a级免费视频| 亚洲国产日韩精品在线| 久久精品人人做人人爽| 亚洲专区中文字幕| 亚洲国产天堂久久综合| 亚洲美女激情视频| 黑人与娇小精品av专区| 中日韩午夜理伦电影免费| 午夜免费在线观看精品视频| 国产精品国语对白| 福利微拍一区二区| 国内精品久久久久| 日日摸夜夜添一区| 日韩精品日韩在线观看| 精品国产91久久久| 91精品国产91| 久久福利视频导航| 国产mv久久久| 日本一区二区在线免费播放| 亚洲综合自拍一区| 这里只有精品丝袜| 国产精品久久久久久av福利| 亚洲精品网址在线观看| 国产偷亚洲偷欧美偷精品|