變量
類的變量叫做屬性,也可以叫成員、字段、特征等,PHP推薦稱之為屬性。
屬性可以通過private
、protected
、public
、static
來設置它的可訪問性,類似Java的作用域。
訪問一個實例對象的非靜態屬性的方式是:$object->屬性名
,其中屬性名 不能包含 $
美元符號。
在當前類中訪問普通屬性的方式是:$this->屬性名
。
訪問一個類的靜態屬性的方式是:ClassName::$屬性名
,其中屬性名 包含 $
美元符號。
在當前類中訪問靜態屬性的方式是:static::$屬性名
。
class Example{
// 只聲明不賦值
// 私有屬性
private $a;
// 保護屬性
protected $b;
// 公開屬性
public $c;
// 聲明的同時也賦值
private $x = 1;
protected $y = 2;
public $z = 3;
// 靜態屬性
static $foobar = 4;
// 構造方法,演示下在類的方法中如何訪問自身的屬性
public function __construct(){
// 私有屬性
echo $this->x;
// 保護屬性
echo $this->y;
// 公開屬性
echo $this->z;
// 靜態屬性
echo static::$foobar;
}
}
// 實例化
$exam = new Example();
// 私有屬性無法訪問
$exam->x;
// 保護屬性無法訪問
$exam->y;
// 公開屬性可以訪問
$exam->z;
// 訪問靜態屬性
Example::$foobar;
常量
可以把類中始終不變的值定義為常量,常量在定義和使用的時候不能用 $
美元符號。
而且他的值只能是一個定死了的值,不能是變量或函數這種看起來結果不固定的值。
常量可以通過private
、protected
、public
來設置它的可訪問性,但不能設置成 static
靜態的。
// 定義類
class Example{
// 定義常量
private const ONE = 111;
protected const TWO = 222;
public const THREE = 333;
const FOUR = 444 * 1;
// 在構造函數中演示如何在方法中訪問當前類的常量
public function __construct(){
// 一共三種方法
echo $this::ONE;
echo self::TWO;
echo static::THREE;
// 在類中訪問常量看起來這種方式最為簡介
echo self::FOUR;
}
}
// 實例化
$exam = new Example();
// 通過實例訪問
// 這兩個沒有權限訪問
$exam::ONE;
$exam::TWO;
// 這兩個有權限
$exam::THREE;
$exam::FOUR;
// 通過類訪問
echo Example::THREE;
echo Example::FOUR;