類可以有常量、屬性(也就是變量)、方法(也就是函數)
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;
}
}