PHP(十二)类关键字

类关键字
this
1、是指向当前对象的指针
2、$this 在静态方法中不可用
列:

class Z
        {
            var $name = '张三';
            public function getName($n)
            {
                echo $this->name = $n;
            }
        }
        $z = new Z;
        echo $z->name;

self
1、是指向当前类的指针,类似与$this关键字,但$this是需要类实例化以后才可以使用,self可以直接访问当前类中的内部成员。
2、self一般用来访问类中的:静态成员(属性和方法),常量
3、使用:
self::方法
self::属性
static
1、声明类属性或方法为static静态,就可以不实例化类而直接访问。
2、静态属性不能通过已实例化的对象来访问(但静态方法可以)。
3、由于静态方法不需要通过对象即可调用,所以伪变量 $this 在静态方法中不可用。
4、静态属性不可以由对象通过 -> 操作符来访问。
5、使用:
5.1、类内部访问静态成员
类名称::静态成员
self::静态成员
static::静态成员
5.2、类外部访问静态成员
类名称 :: 静态成员

class Box
        {
            static $name = '基类';
            public static function getName()
            {
                echo self::$name;  //本身代码片段这个类
                // echo static::$name;  //实例化的这个类
                echo get_called_class();
            }
        }

        //static self
        class A extends Box
        {
            static $name = '派生类';
        }
        $a = new A;
        echo $a->getName();

const
1、可以把在类中始终保持不变的值定义为常量。在定义和使用常量的时候不需要使用 $ 符号。
2、常量的值必须是一个定值,不能是变量,类属性,数学运算的结果或函数调用。
3、类似PHP外部定义常量的关键字define();Const只能修饰类当中的成员属性!

class B
        {
            const color='red';

            public function setColor($c)
            {
               echo $this->color = $c;
            }
        }
        $b = new B;
        echo $b->setColor('blue');

parent
parent:: 可用于调用父类中定义的成员方法。
final
当定义类的时候该类将不能被继承,当用来定义方法的时候该方法将不能被重载。
注意:
self和static区别:
self调用的就是本身代码片段这个类,
static调用的是当前实例化的那个类。

猜你喜欢

转载自blog.csdn.net/qq_38904347/article/details/83934034