zoukankan      html  css  js  c++  java
  • 05--学习PHP面向对象--静态成员与常量成员

    定义一个静态成员

    class Human
    {
        public $name;
        protected $age;
        private $money;
        public static $class= '三年二班';
    }

    静态成员的作用

    静态数据成员可以实现一个类中不同对象的某个数据的值是一样的(方便维护,)。一个类中包含的数据成员有:班级,姓名,年龄,性别。那么对于一个班的几个同学,班级的值一定是一样的。假设每一个学生就是一个对象,那么不同的对象的数据中,班级这个数据就是一样的。
    所以这也就是静态的数据成员的意义,当班级的数据前加上static关键字后,班级被定义为静态数据成员,当这个值改变时,该类实例化出的每一个对象的班级数据全部随之改变。

    静态数据成员的特性

    静态数据成员属于类,而不属于某一个对象。

    在实例化时,类只会把非静态的属性copy一份到新创建的对象空间中,var_dump($man)可以看出对象空间里面有哪些属性

    <?php
    class Human
    {
        public $name;
        protected $age;
        private $money;
        public static $class= '三年二班';
    
    }
    
    $man = new Human('Tom',18,1000);
    var_dump($man);  //object(Human)#1 (3) { ["name"]=> string(3) "Tom" ["age":protected]=> int(18) ["money":"Human":private]=> int(1000) }

    ---------------分割线--------------分割线--------------

    在外部访问静态成员

    <?php
    class Human
    {
        public $name;
        protected $age;
        private $money;
        public static $clas= '三年二班';
    
        public function __construct($name,$age,$money)
        {
            $this->name = $name;
            $this->age = $age;
            $this->money = $money;
        }
        //public方法
        public static function sayName(){
            var_dump(self::$clas);
        }
    }
    
    $man = new Human('Tom',18,1000);
    var_dump(Human::$clas);
    var_dump($man::$clas);
    Human::sayName();

    在内部和外部访问静态成员需要::操作符号,需要加$符号;

    静态数据成员属于类,因此类不可以获取对象属性和方法

    常量成员

    常量成员只能为属性,用法

    产量成员

    <?php
    class Human
    {
        const salary = 'xxx';
        public $name;
        protected $age;
        private $money;
        public static $clas= '三年二班';
    
        public function __construct($name,$age,$money)
        {
            $this->name = $name;
            $this->age = $age;
            $this->money = $money;
        }$man = new Human('Tom',18,1000);
    var_dump($man); 
    //object(Human)#1 (3) { ["name"]=> string(3) "Tom" ["age":protected]=> int(18) ["money":"Human":private]=> int(1000) }

    可以看到常量数据类的数据;

  • 相关阅读:
    winform中文本框添加拖拽功能
    jQuery返回顶部代码
    判断IP地址是否在指定范围内的方法
    jQuery提示通知插件jBox
    Windows 8.1 SecureBoot未正确配置的解决方法
    操作系统下载
    js中(function(){…})()立即执行函数写法理解
    。net MVC 序列化 反序列化
    js点击button按钮跳转到页面代码
    单例模式
  • 原文地址:https://www.cnblogs.com/carefulyu/p/12679162.html
Copyright © 2011-2022 走看看