PHP类:$this和self关键字

$this是指向对象的指针,self是指向当前类的指针。

来一个案例

class ClassName{
    public $abc1="123";//成员属性
    public static $abc2="456";//静态属性
    const abc3="789";//常量

    public function showABC(){//成员方法
        echo $this->abc1;
        echo self::$abc2;
        echo self::abc3;
    }
}
$New_obj=new ClassName;
$New_obj->showABC();

输出:123456789

$this只能在成员方法中使用。self既可以在成员方法中使用,也可以在静态方法中使用,用来调用类的常量、静态属性和方法。

class ClassName{
    public $abc1="123";//成员属性
    public static $abc2="456";//静态属性
    const abc3="789";//常量

    public static function showABC(){//静态方法
        echo $this->abc1;
    }
}
$New_obj=new ClassName;
$New_obj->showABC();

输出:Uncaught Error: Using $this when not in object context

若在静态方法中调用$this关键字,PHP将会报错。