版权声明:未经同意,不得随意转载转载 https://blog.csdn.net/lucky541788/article/details/82946932
self
- 指向类本身,也就是self是不指向任何已经实例化的对象,一般self用来调用类中的静态属性或静态方法
- 假如我们使用类里面静态(一般用关键字static修饰)的属性和方法,我们也必须使用self来调用。
- 还要注意使用self来调用静态属性必须使用::(域运算符)。调用方式如:self::静态属性/静态方法
<?php
class Person
{
public $name = 'bob';
public static $age = 22;//static 修饰的是静态属性
public $self = null;
public function intro()
{
echo 'My name is ' . $this->name . '<br>';//My name is bob
/*
echo $this->age;
报错 静态属性必须使用 类名(self)::静态属性 来调用
报错 静态方法必须使用 类名(self)::静态方法 来调用
*/
echo 'My age is ' . self::$age . '<br>';//My age is 22
echo 'My age is ' . self::getAge() . '<br>';//My age is 22
echo 'My age is ' . $this->getAge() . '<br>';//My age is 22
$this->self = new self();//此处相当于 new Person();
}
public static function getAge()
{
return self::$age;
}
}
$cc = new Person();
$cc->intro();
parent
- 指向父类的指针,可以用来调用父类的方法。
- 一般我们使用parent来调用父类的构造函数(parent::__construct)。
<?php
class Person
{
private $age = 22;
public function getAge()
{
echo $this->age . '<br>';
}
}
class Stu extends Person
{
public function intro()
{
//调用父类的 getAge 方法
parent::getAge();
}
}
$cc = new Stu();
$cc->intro();//22
$cc->getAge();//22