zoukankan      html  css  js  c++  java
  • PHP中类成员的访问控制

    类成员访问控制:

    1、public 默认的,任何地方都可以访问,类内,类外,子类中

    2、protected 受保护的,对外是封闭的,但是类内部和子类可以访问

    3、private  私有的,仅限于本类中访问

    静态属性和静态方法

    static关键字声明了一个属性或方法是和类相关的,而不是和类的某个特定的实例相关,因此,这类属性或方法也成为'类属性'或类方法。

    静态方法的特点

    static方法是累涨的一个成员方法,属于整个类,即是不创建任何对象也可以直接使用。静态方法的缺点是不自动进行销毁,而实例化的则可以做销毁。

    静态属性的特点

    1.static的属性,在内存中只有一份,为所有的实例共用。
    2.使用self:: 关键字访问当前类的静态成员。
    3.一个类的所有实例,共用类中的静态属性。
    4.在内存中即使有多个实例,静态的属性也只有一份。

    使用静态方法

    1.在类外调用静态方法时: 使用 类名::静态方法名
    2.在类中调用其他静态方法时 :使用self::静态方法名,不能使用this(this(this指的是实例化类后的具体对象)

    其他

    静态属性不需要实例化就可以直接使用,在对象还没有创建时就可以直接使用。
    在静态方法中不能使用this>
    当一个类中有非静态方法被self:: 调用时,系统会自动将这个方法转换为静态方法。

    类外部调用静态属性和静态方法

    <?php
    
    namespace _1010;
    //静态属性和静态方法,外部调用
    class Person
    {
        public $name = 'tom';//这是非静态属性
        public static $age = 22;//静态属性
    
        public static function intro()//这是静态方法
        {
            echo '现在调用的是静态方法';
        }
    }
    echo Person::$age,'<br>';//类外部调用静态属性
    echo Person::intro();//类外部调用静态方法
    

    类内部调用静态属性

    <?php
    //内部调用静态属性
    class Person
    {
        public $name = 'tom';
        public static $age = 24;
    
        public function intro()
        {
            echo 'my age is '.self::$age;
        }
        //设置静态属性
        public function setAge($age)
        {
            self::$age = $age;
        }
        //获取静态属性
        public function getAge()
        {
            echo '我现在的 age 是'.self::$age;
        }
    }
    //实例化对象
    $p = new Person();
    $p->intro();
    $p->setAge(66);
    $p->getAge();
    

     类内部调用静态方法

  • 相关阅读:
    第九章:Elasticsearch集群优化及相关节点配置说明
    Linux115条常用命令
    第一章:引擎介绍
    第七章:JAVA引用ESWCF及部分方法说明
    第八章:SCRT搭建ES搜索引擎步骤
    第三章:ES分词简单说明
    第二章:ES索引说明
    疑难杂症:Java中Scanner连续获取int和String型发生错误.
    java实现中缀表达式转后缀表达式
    编程题:输出字符集合的所有排列组合。
  • 原文地址:https://www.cnblogs.com/jsdd/p/11651924.html
Copyright © 2011-2022 走看看