美文网首页
7.2 类的属性

7.2 类的属性

作者: 57fc17b7d598 | 来源:发表于2017-06-23 16:26 被阅读8次

变量

类的变量叫做属性,也可以叫成员、字段、特征等,PHP推荐称之为属性。

属性可以通过privateprotectedpublicstatic来设置它的可访问性,类似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;

常量

可以把类中始终不变的值定义为常量,常量在定义和使用的时候不能用 $ 美元符号。

而且他的值只能是一个定死了的值,不能是变量或函数这种看起来结果不固定的值。

常量可以通过privateprotectedpublic来设置它的可访问性,但不能设置成 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;

相关文章

网友评论

      本文标题:7.2 类的属性

      本文链接:https://www.haomeiwen.com/subject/wdvccxtx.html