訪問控制的修飾符: 是public、PRotected、private來修飾類的成員屬性和成員方法,可以有不同的權限。 public:(公有的)類里面調用和類外面調用都是可以的。 protected:(受保護的)類里面可以被調用,類外面不可以。 private:(私有的)類里面可以被調用,類外面不可以。
類的繼承: 繼承就是對已有的類進行一個復用的使用。 繼承之后可以自動擁有被繼承的類的成員屬性和成員方法。 我們通常把被繼承的類叫做父類(也叫做基類),那么繼承別人的這個類叫做子類(派生類)。 父類擁有的修飾符被繼承的時候會有區別。 一個父類可以被多個子類來繼承。 繼承具有傳遞性,子類還可以繼續被繼承。
語法:
通過extends 關鍵詞來編寫
訪問修飾符在繼承里面的權限問題
類內部 類外部 繼承里面public 可以 可以 可以 protected 可以 不可以 不可以private 可以 不可以 不可以繼承遇到訪問修飾符的權限問題 權限大小的排序:(由大到小)public->protected->private 當父類是public的時候,子類只能是public、protected 當父類是private的時候,子類可以是public、protected、private
注意:所有的魔術方法都會被繼承、所有的魔術方法都可以被重載
parent關鍵詞: 使用parent::父類的方法,可以在子類的方法中調用
final關鍵詞 所有定義了final關鍵詞的類都不能被繼承 final class jilei {
}
靜態成員方法和靜態的成員屬性: class wan { public static time = ‘1天’; public static function xxx() { echo ‘這就是一個靜態的成員方法’; echo self::time; //在類的內部調用靜態的成員屬性的時候要使用slef或者類名關鍵詞,推薦在類的內部用self。 echo wan::$time; self::yukuai(); //在類的內部調用靜態的成員方法的時候,也要使用self或者類名關鍵詞,推薦在類的內部使用self
wan::yukuai();}public static function yukuai(){ echo '開心起來';}}
wan::xxx(); 在類的外部調用靜態的成員方法 wan::
靜態的成員屬性屬于公共的,不屬于某一個具體的對象。
1.__get($name) 觸發時機:當調用一個不可訪問的成員屬性的時候,會自動觸發,可以利用這個方法來完成對不可調用的屬性進行調用,但是不能設置值。
2.__set(
3.__isset($name) 觸發時機:當使用isset()函數來判斷一個對象的屬性的時候,如果這個屬性不存在或者不可訪問的時候,會觸發這個魔術方法
4.__call(
5.__callStatic(
6.__unset() 觸發時機:當要銷毀不存在的成員屬性或者不可訪問的成員屬性的時候,會被觸發。
7.__sleep() 觸發時機:當使用serialize的把對象進行序列化的時候,會觸發。
public function __sleep() { return array(‘xxx’); //指定可以被序列話的屬性 }
8.__wakeup() 觸發時機:當使用unserialize 的反序列化一個對象的時候,會觸發
public function __wakeup() {
}
9.__toString() 觸發時機:在echo 一個對象的時候,會觸發
public function __toString() { return ‘小可愛’; }
新聞熱點
疑難解答