PHP类或PHP方法之间self
和之间的区别在哪里$this->
?
例:
我最近看过这个代码.
public static function getInstance() {
if (!self::$instance) {
self::$instance = new PDO("mysql:host='localhost';dbname='animals'", 'username', 'password');;
self::$instance-> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
return self::$instance;
}
Run Code Online (Sandbox Code Playgroud)
但我记得$this->
那是指一个类的当前实例(对象)(可能也是错误的).但是,有什么区别?
Tor*_*amo 17
$this
指的是类的实例,这是正确的.但是,还有一种称为静态的东西,对于该类的所有实例都是相同的.self::
是这些属性和功能的访问者.
此外,您通常无法从静态方法访问实例成员.意思是,你做不到
static function something($x) {
$this->that = $x;
}
Run Code Online (Sandbox Code Playgroud)
因为静态方法不知道您指的是哪个实例.