關於php面向的特性之封裝
物件導向的封裝特性 Private Class star{ public $name; private $age; private $weight; //建構函式,在類被例項化之後,第一個被自動執行的方法,不需要人工進行手動呼叫 function __struct($name,$age,$weight){ $this->name=$name; $this->age=$age; $this->weight=$weight; } //當物件訪問類的私有屬性時,系統會自動呼叫 private function __get($varName){ return $this->$varName; } //當物件訪問類的私有屬性,併為私有屬性賦值時,系統會自動呼叫 private function __set($varName,$strValue){ return $this->$varName=$strValue; } //當物件 訪問類的私有屬性,並使用isset()函式判斷物件的私有屬性是否存在時,系統自動呼叫__isset() private function __isset($strName){ return isset($this->$strName); } //當物件訪問類的私有屬性,並使用unset()函式銷燬物件的私有屬性的時候,系統自動呼叫__unset()魔術方法 private function __unset($strName){ unset($this->$strName);//unset($var)銷燬變數時沒有返回值 } } $star=new star; echo $star->name; //訪問物件的公共屬性,可以直接訪問 $star->="李小龍"; //可以訪問物件的公共屬性,並賦值 isset($star->name); //可以在類的外部直接使用isset()函式判斷類的公共屬性是否存在 unset($star->name); //可以再類的外部直接使用unset()函式來對物件的公共屬性進行銷燬 /////////////關於私有屬性的操作/////////////// //不能在類的外部直接訪問類的私有屬性 echo $star->age; //return error //不能再類的外部直接訪問類的私有屬性,併為其賦值 $star->age="30";//return error //不能在類的外部直接判斷物件的私有屬性是否存在 echo isset($star->weight); //return error //不能在類的外部直接銷燬類的私有屬性 unset($star->weight); //return error //////////////////系統自動呼叫類的魔術方法訪問私有屬性,並對私有屬性進行操作////////////////////////// //物件訪問類的私有屬性,系統自動呼叫__get()魔術方法 echo $star->age; //物件訪問類的私有屬性,併為該私有屬性賦值,系統自動呼叫__set()魔術方法 $star->weight="65kg"; //物件訪問類的私有屬性,並使用isset()函式判斷該私有屬性是否存在,系統自動呼叫__isset()魔術方法 isset($star->age); //物件訪問類的私有屬性,並使用unset()函式銷燬該私有屬性時,系統自動呼叫__unset()魔術方法 unset($star->weight);
本文轉自 hgditren 51CTO部落格,原文連結:http://blog.51cto.com/phpme/840557,如需轉載請自行聯絡原作者
相關文章
- 物件導向 -- 三大特性之封裝物件封裝
- 淺談python的物件的三大特性之封裝Python物件封裝
- 封裝,特性,多型封裝多型
- 關於緩動動畫函式的封裝動畫函式封裝
- php的curl封裝類PHP封裝
- FMDB 二次封裝,面向模型封裝模型
- 基於DotNetCoreNPOI封裝特性通用匯出excelNetCore封裝Excel
- 關於網路框架設計封裝的扯淡框架封裝
- 關於Vue中常用的工具函式封裝Vue函式封裝
- 關於資料庫操作的封裝程式碼資料庫封裝
- java三大特性-封裝Java封裝
- 面向設計的半封裝web元件開發封裝Web元件
- 面向2-封裝、繼承、多型封裝繼承多型
- php函式封裝PHP函式封裝
- 關於面向連線與面向無連線
- iOS 面向協議方式封裝空白頁功能iOS協議封裝
- iOS 面向協議封裝全屏旋轉功能iOS協議封裝
- C# 使用特性的方式封裝報文C#封裝
- 2.2.1 關於CDB的特性
- 關於react-native封裝外掛--swiperReact封裝
- Swift 核心動畫 面向協議 擴充套件封裝Swift動畫協議套件封裝
- 小之的架構之路——Android MVVM 面向介面型框架封裝和單元測試架構AndroidMVVM框架封裝
- PHP 特性之 trait (一)PHPAI
- Java的三大特性:封裝、繼承、多型Java封裝繼承多型
- 【新版本特性】SinoDB的業務封裝技術封裝
- DiffUtil之我的封裝思路封裝
- C#關於JArray和JObject封裝JSON物件C#JARObject封裝JSON物件
- iOS之WKWebView封裝iOSWebView封裝
- PHP 技巧 - 封裝基本的資料型別PHP封裝資料型別
- Flutter 基於Bloc框架的封裝FlutterBloC框架封裝
- 關於對小程式網路請求的封裝(詳盡版)封裝
- [hyperf]關於資料返回封裝的另一種實現思考封裝
- banq老師,關於將ResultSet封裝成List返回的問題封裝
- 關於DAO的封裝,請板橋幫助,歡迎大家討論封裝
- 關於Spring Cloud的核心特性SpringCloud
- 關於一些php面試之物件導向的相關知識PHP面試物件
- 【JavaScript框架封裝】實現一個類似於JQuery的動畫框架的封裝JavaScript框架封裝jQuery動畫
- JS物件之封裝(二)JS物件封裝