变量
类的变量叫做属性,也可以叫成员、字段、特征等,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;