這篇文章主要介紹“php魔術方法與魔術變量、內(nèi)置方法與內(nèi)置變量的用法”,在日常操作中,相信很多人在php魔術方法與魔術變量、內(nèi)置方法與內(nèi)置變量的用法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”php魔術方法與魔術變量、內(nèi)置方法與內(nèi)置變量的用法”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
成都創(chuàng)新互聯(lián)主要從事成都網(wǎng)站設計、成都做網(wǎng)站、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務信豐,十多年網(wǎng)站建設經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:13518219792php內(nèi)置變量了:DIRECTORY_SEPARATOR
DIRECTORY_SEPARATOR是一個返回跟操作系統(tǒng)相關的路徑分隔符的php內(nèi)置命令,在windows上返回/,而在linux或者類unix上反悔/,就是這么個區(qū)別,通常在定義包含文件路徑或者上傳保存目錄的時候會用到。
PHP 把所有以 __ (兩個下劃線)開頭的類方法當成魔術方法。所以你定義自己的類方法時,不要以 __ 為前綴。
1 、 __construct()
當實例化一個對象的時候,這個對象的構造方法將首先被調(diào)用;
我們知道 php5 對象模型和類名相同的函數(shù)是類的構造函數(shù),那么如果同時定義構造函數(shù)和 __construc() 方法的話, php5 會默認調(diào)用 __contruct() 而不會調(diào)用同類名函數(shù),所以 __contruct() 作為類的默認構造函數(shù);
2 、 __destruct()
析構函數(shù)會在到某個對象的所有引用都被刪除或者當對象被顯式銷毀時執(zhí)行。
3 、 __get(string $name)
當試圖讀取一個并不存在的屬性時被調(diào)用;如果試圖讀取一個對象并不存在的屬性的時候, php 就會給出錯誤的信息。如果在類里添加 __get 方法,并且我們可以用這個函數(shù)實現(xiàn)類似 java 中的反射的各種操作。
4 、 __set(string $name, mixed $value)
給未定義的變量賦值時將被調(diào)用
5 、 __call(string $name, array $arguments)
當調(diào)用一個不可訪問方法(如未定義,或者不可見)時, __call() 會被調(diào)用。
__callStatic( string $name, array $arguments )
當在靜態(tài)方法中調(diào)用一個不可訪問方法(如未定義,或者不可見)時, __callStatic() 會被調(diào)用。
6 、 __toString()
當打印一個對象的時候被調(diào)用,這個方法類似于 java 的 toString 方法,當我們直接打印對象的時候回調(diào)這個函數(shù)。
7 、 __clone()
當對象被克隆時調(diào)用。
8 、 __sleep()
serialize() 函數(shù)會檢查是否存在一個魔術方法 __sleep . 如果存在, __sleep() 方法會先被調(diào)用, 然后才執(zhí)行序列化操作。這個功能可以用于清理對象,并返回一個包含對象中所有變量名稱的數(shù)組。如果該方法不返回任何內(nèi)容,則 NULL 被序列化,導致 一個 E_NOTICE 錯誤。 __sleep 方法常用于提交未提交的數(shù)據(jù),或類似的操作。同時,如果你有一些很大的對象,不需要保存,這個功能就很好用。
9 、 __wakeup()
與 __sleep() 相反, unserialize() 會檢查是否存在一個 __wakeup 方法。如果存在,則會先調(diào)用 __wakeup 方法,預先準備對象數(shù)據(jù)。 __wakeup 經(jīng)常用在反序列化操作中,例如重新建立數(shù)據(jù)庫連接,或執(zhí)行其它初始化操作。
10 、 __isset()
當對未定義的變量調(diào)用 isset() 或 empty() 時, __isset() 會被調(diào)用。
11 、 __unset()
unset 一個對象的屬性時被調(diào)用。如: unset($c->name) 。
12 、 __set_state()
調(diào)用 var_export 時,被調(diào)用。用 __set_state 的返回值做為 var_export 的返回值。
13 、 __autoload()
實例化一個對象時,如果對應的類不存在,則該方法被調(diào)用。簡單的說就是類的自動加載 ; 當你嘗試使用一個 PHP 沒有組織到的類 , 它會尋找一個 __autoload 的全局函數(shù) . 如果存在這個函數(shù) ,PHP 會用一個參數(shù)來調(diào)用它 , 參數(shù)即類的名稱。
14 、 __invoke()
當嘗試以調(diào)用函數(shù)的方式調(diào)用一個對象時, __invoke 方法會被自動調(diào)用。
魔術常量 :
__LINE__ 文件中的當前行號。
__FILE__ 文件的完整路徑和文件名。如果用在被包含文件中,則返回被包含的文件名。自 PHP 4.0.2 起, __FILE__ 總是包含一個絕對路徑(如果是符號連接,則是解析后的絕對路徑),而在此之前的版本有時會包含一個相對路徑。
__DIR__ 文件所在的目錄。如果用在被包括文件中,則返回被包括的文件所在的目錄。它等價于 dirname(__FILE__) 。除非是根目錄,否則目錄中名不包括末尾的斜杠。( PHP 5.3.0 中新增) =
__FUNCTION__ 函數(shù)名稱( PHP 4.3.0 新加)。自 PHP 5 起本常量返回該函數(shù)被定義時的名字(區(qū)分大小寫)。在 PHP 4 中該值總是小寫字母的。
__CLASS__ 類的名稱( PHP 4.3.0 新加)。自 PHP 5 起本常量返回該類被定義時的名字(區(qū)分大小寫)。在 PHP 4 中該值總是小寫字母的。
__METHOD__ 類的方法名( PHP 5.0.0 新加)。返回該方法被定義時的名字(區(qū)分大小寫)。
__NAMESPACE__ 當前命名空間的名稱(大小寫敏感)。這個常量是在編譯時定義的( PHP 5.3.0 新增)
到此,關于“php魔術方法與魔術變量、內(nèi)置方法與內(nèi)置變量的用法”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
文章標題:php魔術方法與魔術變量、內(nèi)置方法與內(nèi)置變量的用法-創(chuàng)新互聯(lián)
轉載來源:http://m.rwnh.cn/article14/pogge.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護、動態(tài)網(wǎng)站、全網(wǎng)營銷推廣、外貿(mào)建站、App開發(fā)、響應式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)