類的自動加載是外面的頁面中,並不須要去「引入」(包含)類文件,可是程序會在須要一個類的時候就自動去「動態加載」該類。php
1.使用__autoload魔術函數。它本身引數據庫
2.使用spl_autoload_register函數數組
對象也能夠能夠使用foreach語句進行遍歷,有兩點注意:函數
1,只能遍歷屬性。spa
2,只能遍歷「看獲得」的屬性——代碼所在範圍可訪問。scala
內置標準類,直接new一個,裏面屬性只要用就有,很隨意。對象
數據轉對象,對象轉數據,字符串
對象轉換爲對象:沒有變化;get
數組轉換爲對象:數組的鍵名看成屬性名,值爲對應值;string
但一般,若是數數字下標,則其對應屬性 並不方便操做
因此一般就適合於純字符下標的數組。
其餘標量數據轉換爲對象:屬性名爲固定的「scalar」,值爲該變量的值。
對於類型約束在php裏不用太在乎,php屬於弱類型語言。
與類有關的魔術常量:
__CLASS__,:獲取其所在的類的類名。
__METHOD__:獲取其所在的方法的方法名。
數據(變量)序列化和反序列化
序列化是將一個變量的數據「轉換爲」字符串——但並非類型轉換並將該字符串「存儲起來」。
反序列化就是將儲存的文本文件再返回成原數據。
序列化:
$str = serialize($變量); //此時該變量的數據就變成了字符串,並存入變量$str1;
但一般的應用出,此時就應該將其保存爲文件(或數據庫),以下:
file_put_contents(「文本文件路徑」, $str);
反序列化:
$str = file_get_contents(「文本文件路徑」); //先從文本文件中取得內容
$v1 = unserialize( $str); //反序列化,此時$v1這個變量中存儲的就是原來變量內容(和類型)
其餘魔術方法
__sleep(), 和 __wakeup()
當對一個對象進行「序列化」操做的時候,會自動調用類中的__sleep()方法;
當「反序列化」一個對象的時候,會自動調用對應類中的__wakeup()方法;
__tostring()方法
當把一個對象看成一個「字符串」來看待(處理)的時候,會自動調用該魔術方法。
__invoke()方法
對象看成一個「方法」(函數)的時候,會自動調用該魔術方法。