美文网首页
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