PHP 類和對象 —— 概念的理解(類,對象,僞變量$this,::class)

類可以有常量、屬性(也就是變量)、方法(也就是函數)

1、類是面向對象的基本概念,就是對現實中某一種類的事物的抽象

比如手機可以抽象爲一個類,具體屬性有顯示屏類型,顯示屏幀率,處理器,內存規格,電池大小,快充功率,攝像頭規格等。

可以有獲取手機名稱,打電話,玩遊戲,看視頻,聊天等操作方法。

class Phone{
    //聲明屬性
    $name = '手機';
    //聲明方法
    function getPhoneName{     
         return $this->name;
    }              
}

2、類是一類事物的總稱,比如手機,

對象是一類事物的一個具體事例,比如這部手機。

對象通過new關鍵字實例化

$phone = new Phone();//實例化一個手機對象

$phone->name = '魅族17 Pro';//給手機名稱賦值

echo $phone->getPhoneName();//調用getPhoneName的方法

總結:類是抽象的概念,對象是具體的實例。

類使程序具有重用性,比如就是可以被其他類繼承。

 

3、僞變量$this:類內部定義被調用

從對象上下文中也就是類內部調用方法時,僞變量$this可用。

$ this是對調用對象的引用(通常是該方法所屬的對象,但如果從輔助對象的上下文中靜態調用該方法,則可能是另一個對象)

class Phone{
    function foo(){
        if (isset($this)){
            echo '僞變量$this是'.get_class($this).'\n';           
        } else{
            echo '未定義僞變量$this\n';
        }
    }
}

class Meizu{
    function bar(){
        Phone::foo();
    }
}

$phone = new Phone();
$phone->foo();

Phone::foo();

$meizu = new Meizu();
$meizu->bar();

Meizu::bar();
PHP 5 輸出以下內容:
    僞變量$this是Phone;
    未定義僞變量$this;
    僞變量$this是Phone;
    未定義僞變量$this;

PHP 7 輸出以下內容弄:
    僞變量$this是Phone;
    未定義僞變量$this;
    未定義僞變量$this;//當從另一個Meizu類調用Phone類的僞變量$this時,僞變量$this會變成未定義。
    未定義僞變量$this;    
    

4.   ::class  可用於類名的解析,使用ClassName::class你可以獲取類的完全名稱,對使用命名空間命名的類特別有用。

<?php
    namespace NS{
        class ClassName{
             echo ClassName::class;   
        }
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章