概括起來就是「自頂向下,逐步細化」,把乙個複雜的問題分解成簡單的問題一步一步做出來
所謂的物件導向,就是在程式設計的時候盡可能的模擬現實世界!
1, 都可以實現**重用和模組化程式設計,物件導向的模組化更深,不僅僅是簡單的將功能進行封裝(封裝成函式),更是對呼叫該功能的主體進行封裝,實現某個主體具有個功能,在使用的過程中,先得到相應的主體,再使主體去實現相關的功能
2, 物件導向的資料更封閉,也更安全
3, 物件導向的思維方式更貼近現實生活,更容易解決大型的複雜的業務邏輯
4, 從前期開發角度來看,物件導向要比面向過程更複雜,但是從維護和擴充套件的功能來看,物件導向要遠比面向過程簡單
代表當前物件,誰呼叫就代表誰
__cosntruct 建立物件時自動呼叫的構造方法
__destruct 刪除物件時自動呼叫的析構方法,比如刪除物件時,可以把呼叫的資源釋放
__clone 轉殖乙個物件時自動呼叫,可以寫一些**來區分轉殖物件
__sleep 當序列化乙個物件時自動呼叫,一般返回乙個需要序列化的屬性的陣列
__wakeup 當反序列化乙個物件時呼叫,一般要在裡面寫上初始化**(一般為不能序列化的資源型別)
__get($name) 獲得不可訪問的屬性的值的時候
__set($name,$value) 為不可訪問的屬性賦值的時候
__unset($name) 刪除不可訪問的屬性的時候
__isset($name) 判斷不可訪問的屬性是否存在的時候
__call($name,$arr)$name為方法名,$arr為引數列表, 當呼叫乙個不可訪問的非靜態方法(物件方法)的時候,會自動執行該魔術方法,這裡的不可訪問分為不存在或者沒有訪問許可權兩種情況
__callstatic($name,$arr)$name為方法名,$arr為引數列表, 當呼叫乙個不可訪問的靜態方法(物件方法)的時候,會自動執行該魔術方法,,這裡的不可訪問分為不存在或者沒有訪問許可權兩種情況
__autoload不算是魔術方法,可以叫作魔術函式!一般註冊自動載入方法使用spl_autoload_register($name),$name為方法名。把物件裡的非靜態方法註冊使用spl_autoload_register(array($obj,$name)),$obj為物件名,$name為方法名
把物件裡的靜態方法註冊使用spl_autoload_register(array($class,$name)),$class為類名,$name為方法名,還有乙個簡單方法spl_autoload_register(「類名::靜態方法名」);
__invoke() 當把物件當做乙個函式或方法來呼叫的時候,會自動執行該魔術方法!括號裡面可以傳遞引數
__tostring() 將乙個物件當做乙個字串來使用的時候,會自動觸發該方法!
__dir__ 返回當前根目錄路徑
__file__ 返回當前檔案路徑
__line__ 返回當前行數
__function__ : 返回當前函式的名字
__class__ 返回代表當前類名
__method__ 返回當前的方法名!
__namespace__:代表當前命名空間名!
PHP物件導向
1 什麼是物件導向 起初,物件導向 是專指在程式設計中採用封裝 繼承 抽象等設計方法。可是,這個定義顯然不能再適合現在情況。物件導向的思想已經涉及到軟體開發的各個方面。如 物件導向的分析 ooa,object oriented analysis 物件導向的設計 ood,object oriented...
php物件導向
smarty自定義函式 作用 用於在模板被執行時為模板變數賦值 函式名稱 assign 引數 var 宣告變數名稱 字串 value 給該變數賦值 字串 tpl assign title this is title 實現自定義函式有兩種 1.註冊自定義函式 3.版本不支援 tpl register ...
php物件導向
一 寫出php的public protected private三種訪問控制模式的區別 public 公有,任何地方都可以訪問 protected 繼承,只能在本類或子類中訪問,在其他地方不允許訪問 private 私有,只能在本類中訪問,在其他地方不允許訪問 二 請用單態設計模式方法設計類滿足要求...