亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

PHP中的面向對象

2020-03-22 19:22:24
字體:
來源:轉載
供稿:網友
  • 訪問控制(可見性)

    PHP的訪問控制有 html' target='_blank'>public(公有),protected(受保護)和 private(私有)

    被定義為公有的類成員可以在任何地方被訪問。
    被定義為受保護的類成員則可以被其自身以及其子類和父類訪問。
    被定義為私有的類成員則只能被其定義所在的類訪問。

    不能用于修飾class

    類屬性不能省略,必須定義為公有,受保護,私有之一。

    類中的方法如果沒有設置這些關鍵字,則該方法默認為公有。

    同一個類的對象即使不是同一個實例也可以互相訪問對方的私有與受保護成員。這是由于在這些對象的內部具體實現的細節都是已知的。


    屬性

    用 ->(對象運算符):$this->property(其中 property 是該屬性名)這種方式來訪問非靜態屬性。靜態屬性則是用 ::(雙冒號):self::$property 來訪問

    $this 是一個到主叫對象的引用


    類常量

    可以把在類中始終保持不變的值定義為常量。在定義和使用常量的時候不需要使用 $ 符號

    常量的值必須是一個定值,不能是變量,類屬性,數學運算的結果或函數調用

    用雙冒號::訪問

    const constant = 'constant value';

    自動加載類

    很多開發者寫面向對象應用程序時對每個類的定義建立一個 PHP 源文件。一個很大的煩惱是不得不在每個腳本開頭寫一個長長的包含文件列表(每個類一個文件)。

    在 PHP 5 中,不再需要這樣了??梢远x一個 spl_autoload_register() 函數,它會在試圖使用尚未被定義的類時自動調用。通過調用此函數,腳本引擎在 PHP 出錯失敗前有了最后一個機會加載所需的類。

    <?php// function __autoload($class) {//     include 'classes/' . $class . '.class.php';// }function my_autoloader($class) {    include 'classes/' . $class . '.class.php';}spl_autoload_register('my_autoloader');// 或者,自 PHP 5.3.0 起可以使用一個匿名函數spl_autoload_register(function ($class) {    include 'classes/' . $class . '.class.php';});?>

    構造函數和析構函數

    構造函數和析構函數不會被引擎暗中調用。要執行父類的構造函數和析構函數,必須在子類的構造函數體和析構函數體中顯式調用 parent::__construct(); parent::__destruct()


    繼承

    除非使用了自動加載,否則一個類必須在使用之前被定義。如果一個類擴展了另一個,則父類必須在子類之前被聲明。此規則適用于類繼承其它類與接口。

    繼承使用extends關鍵字


    范圍解析操作符(::)

    范圍解析操作符(也可稱作 Paamayim Nekudotayim)或者更簡單地說是一對冒號,可以用于訪問靜態成員,類常量


    Static(靜態)關鍵字

    聲明類屬性或方法為靜態,就可以不實例化類而直接訪問。靜態屬性不能通過一個類已實例化的對象來訪問(但靜態方法可以)。

    靜態屬性和方法默認為公有


    抽象類

    使用關鍵字abstract

    任何一個類,如果它里面至少有一個方法是被聲明為抽象的,那么這個類就必須被聲明為抽象的。

    被定義為抽象的方法只是聲明了其調用方式(參數),不能定義其具體的功能實現。

    繼承一個抽象類的時候,子類必須定義父類中的所有抽象方法;另外,這些方法的訪問控制必須和父類中一樣(或者更為寬松)


    接口

    接口是通過 interface 關鍵字

    接口中定義的所有方法都必須是公有,這是接口的特性

    接口中也可以定義常量。接口常量和類常量的使用完全相同,但是不能被子類或子接口所覆蓋

    要實現一個接口,使用 implements 操作符。類中必須實現接口中定義的所有方法,否則會報一個致命錯誤。類可以實現多個接口,用逗號來分隔多個接口的名稱。

    接口也可以繼承接口


    Traits

    自 PHP 5.4.0 起,PHP 實現了代碼復用的一個方法,稱為 traits。

    <?phptrait ezcReflectionReturnInfo {    function getReturnType() { /*1*/ }    function getReturnDescription() { /*2*/ }}class ezcReflectionMethod extends ReflectionMethod {    use ezcReflectionReturnInfo;    /* ... */}class ezcReflectionFunction extends ReflectionFunction {    use ezcReflectionReturnInfo;    /* ... */}?>

    通過逗號分隔,在 use 聲明列出多個 trait

    <?phptrait Hello {    public function sayHello() {        echo 'Hello ';    }}trait World {    public function sayWorld() {        echo 'World';    }}class MyHelloWorld {    use Hello, World;    public function sayExclamationMark() {        echo '!';    }}?>

    魔術方法

    __construct()
    __destruct()
    __call()
    __callStatic()
    __get()
    __set()
    __isset()
    __unset()
    __sleep() serialize() 函數會檢查類中是否存在一個魔術方法 __sleep()。如果存在,該方法會先被調用,然后才執行序列化操作。
    __wakeup() unserialize() 會檢查是否存在一個 __wakeup() 方法。如果存在,則會先調用 __wakeup 方法
    __toString() 用于一個類被當成字符串時應怎樣回應
    __invoke() 當嘗試以調用函數的方式調用一個對象時,__invoke() 方法會被自動調用
    __set_state() 當調用 var_export() 導出類時,此靜態 方法會被調用
    __clone()
    __debugInfo() var_dump()一個對象時調用

    這些函數在 PHP 中被稱為”魔術方法”(Magic methods)。在命名自己的類方法時不能使用這些方法名,除非是想使用其魔術功能。

    在給不可訪問屬性賦值時,__set() 會被調用。

    讀取不可訪問屬性的值時,__get() 會被調用。

    當對不可訪問屬性調用 isset() 或 empty() 時,__isset() 會被調用。

    當對不可訪問屬性調用 unset() 時,__unset() 會被調用。

    在對象中調用一個不可訪問方法時,__call() 會被調用。

    用靜態方式中調用一個不可訪問方法時,__callStatic() 會被調用。


    Final 關鍵字

    如果父類中的方法被聲明為 final,則子類無法覆蓋該方法。如果一個類被聲明為 final,則不能被繼承。

    屬性不能被定義為 final,只有類和方法才能被定義為 final


    對象復制

    對象復制可以通過 clone 關鍵字來完成(如果可能,這將調用對象的 __clone() 方法)。對象中的 __clone() 方法不能被直接調用。


    對象比較

    當使用比較運算符(==)比較兩個對象變量時,比較的原則是:如果兩個對象的屬性和屬性值 都相等,而且兩個對象是同一個類的實例,那么這兩個對象變量相等。

    而如果使用全等運算符(===),這兩個對象變量一定要指向某個類的同一個實例(即同一個對象)。


    類型約束

    PHP 5 可以使用類型約束。函數的參數可以指定必須為對象(在函數原型里面指定類的名字),接口,數組(PHP 5.1 起)或者 callable(PHP 5.4 起)。不過如果使用 NULL 作為參數的默認值,那么在調用函數的時候依然可以使用 NULL 作為實參。

    類型約束不能用于標量類型如 int 或 string。Traits 也不允許。

    類型約束不只是用在類的成員函數里,也能使用在函數里


    對象序列化

    所有php里面的值都可以使用函數serialize()來返回一個包含字節流的字符串來表示。unserialize()函數能夠重新把字符串變回php原來的值。 序列化一個對象將會保存對象的所有變量,但是不會保存對象的方法。


    PHP編程

    鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
    深夜精品寂寞黄网站在线观看| www.亚洲天堂| 亚洲福利视频久久| 狠狠躁天天躁日日躁欧美| 欧美最近摘花xxxx摘花| 精品人伦一区二区三区蜜桃免费| 色黄久久久久久| 精品久久国产精品| 中文欧美在线视频| 成人性生交大片免费看视频直播| 揄拍成人国产精品视频| 国产精品久久久久久久久久东京| 亚洲成年网站在线观看| 国产第一区电影| 2019国产精品自在线拍国产不卡| 亚洲精品国偷自产在线99热| 国产精品亚洲网站| 91成人国产在线观看| 另类美女黄大片| 91精品国产777在线观看| 国产精品色婷婷视频| 日韩理论片久久| 中文字幕一精品亚洲无线一区| 欧美xxxx14xxxxx性爽| 精品中文字幕在线观看| 国产精品视频内| 国产91精品青草社区| 欧美一级高清免费播放| 亚洲资源在线看| 国产成人在线精品| 日韩欧美一区二区在线| 日韩在线观看免费| 亚洲无亚洲人成网站77777| 亚洲精品国产综合区久久久久久久| 国产精品久久久久久婷婷天堂| 国产日韩欧美黄色| 欧美日韩日本国产| 亚洲最大福利网站| 亚洲美女性生活视频| 欧美日韩免费一区| 日韩在线国产精品| 中文字幕欧美视频在线| 国产精品一区二区久久久久| 欧美精品激情在线| 欧美大学生性色视频| 1769国内精品视频在线播放| 日产精品99久久久久久| 欧洲亚洲妇女av| 日韩成人中文电影| 2020欧美日韩在线视频| 久久九九国产精品怡红院| 国产suv精品一区二区| 亚洲精品国产精品国自产观看浪潮| 在线看国产精品| 国产综合久久久久| 欧美激情视频免费观看| 最近2019免费中文字幕视频三| 亚洲最大的网站| 国产精品美女免费视频| 久久成人精品一区二区三区| 欧洲亚洲免费在线| 懂色aⅴ精品一区二区三区蜜月| 国产精品一区二区三区免费视频| 日韩中文字幕网址| 久久精品欧美视频| 色爱av美腿丝袜综合粉嫩av| 亚洲欧美制服第一页| 精品福利视频导航| 日韩成人中文字幕| 456亚洲影院| 成人xvideos免费视频| 精品丝袜一区二区三区| 国产欧美亚洲精品| 欧美丰满老妇厨房牲生活| 91精品久久久久久久久青青| 欧美专区中文字幕| 精品爽片免费看久久| 欧美日韩精品在线观看| 国产精品久久久久久亚洲调教| 中文字幕亚洲综合久久筱田步美| 亚洲最大激情中文字幕| 久久久久国产一区二区三区| 日韩免费看的电影电视剧大全| 国产精品7m视频| 色偷偷偷亚洲综合网另类| 亚洲a中文字幕| 九九热精品视频在线播放| 欧美影院在线播放| 中文字幕亚洲情99在线| 欧美激情xxxx性bbbb| 欧美成人激情视频免费观看| 一本色道久久综合狠狠躁篇怎么玩| 久久精品国产一区二区电影| 国产精品 欧美在线| 亚洲乱码国产乱码精品精| 91精品国产高清自在线看超| 精品欧美一区二区三区| 亚洲在线免费视频| 国产精选久久久久久| 色偷偷av一区二区三区| 亚洲色图偷窥自拍| 91久久久精品| 色中色综合影院手机版在线观看| 尤物精品国产第一福利三区| 久久中文字幕在线| 午夜精品在线观看| 国产69精品久久久久久| 久久久久久久久久久网站| 欧美午夜精品伦理| 日韩在线视频导航| 亚洲男女自偷自拍图片另类| 久久成人人人人精品欧| 亚洲aa在线观看| 日韩激情视频在线播放| 精品视频久久久久久| 91黑丝在线观看| 91国偷自产一区二区三区的观看方式| 91性高湖久久久久久久久_久久99| 亚洲精品国产精品自产a区红杏吧| 91精品国产综合久久香蕉922| 亚洲综合中文字幕在线| 91亚洲精华国产精华| 国产成人综合亚洲| 日韩电影免费观看在线| 久久精品美女视频网站| 亚洲高清福利视频| 91精品国产自产在线观看永久| 中文字幕亚洲一区二区三区五十路| 国产精品高精视频免费| 国产中文字幕亚洲| 国产精品久久久久久久一区探花| 欧美大片网站在线观看| 久久视频国产精品免费视频在线| 亚洲第一网站免费视频| 一区二区成人精品| 欧美日韩999| 富二代精品短视频| 国产欧美日韩精品专区| 国产精品美女免费视频| 伊人成人开心激情综合网| 国产精品久久久久久久久久小说| 国产精品夜间视频香蕉| 97人人模人人爽人人喊中文字| 国产在线播放91| xxx成人少妇69| 欧美成人免费va影院高清| 欧美国产欧美亚洲国产日韩mv天天看完整| 日韩精品免费观看| 国产视频999| 久久国产精品久久久久久久久久| 久久激情五月丁香伊人| 欧美日韩视频免费播放| 欧美疯狂性受xxxxx另类| 丝袜一区二区三区| 亚洲女人被黑人巨大进入| 成人亚洲激情网| 国产色婷婷国产综合在线理论片a| 成人免费视频97| 国产网站欧美日韩免费精品在线观看| 国产91精品网站| 亚洲自拍偷拍色片视频| 中文字幕日韩在线播放| 成人激情免费在线| 福利精品视频在线|