PHP中self与this的区别

前言

刚刚写代码时突然,忽然意识到自己没有将两者的区别搞清楚,遂赶紧补充知识。

this和self的使用区别

this和self的区别
类中变量分为普通变量和静态变量

public $a
public static $b

对普通变量的调用用$this->a
对静态变量的调用用self::$b(PHP5.3+ 也允许用$this::$b但看起来怪怪的,我应该不会用)

类中函数分为普通函数和静态函数

public function test1(){…}
public static function test2(){…}

静态函数里只能使用静态变量,不能使用普通变量,静态函数可以用self::test2()使用,经过测试,也可以用$this->test2()调用。
普通函数的调用用self::test1()或$this->test1()

关键词static

  1. 当方法为静态方法时,则可以不实例化类而直接使用。同样,静态属性也可以不实例化直接使用。
  2. 静态属性不可通过对象用->访问
  3. 静态方法不可调用非静态方法

你可能感兴趣的:(php)