日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 PHP其他 正文

基礎知識,PHP對象中static、$this、self 的區別

作者:L小臣 更新時間: 2023-08-30 PHP其他

1、$this 指當前對象的實例化
t h i s 表 示 對 象 的 引 用 , this 表示對象的引用, thisthis寫在類中的非靜態方法中, 實例化該類,誰調用該方法(一般是對象調用)$this則表示該對象的引用。

<?php
class Exa {
	public $name;
	public function getName(){
		echo $this->name;
	}
}
$e = new Exa();
$e1 = new Exa();
$e->name = '小張';
$e1->name = '小李';
$e->getName();	// 小張
$e1->getName();	// 小李

$this是指類的實例,實例化的是C類,所以調用C類的方法。

2、self 指向類本身
self 和 this 不同,一般用來訪問類中的靜態變量和靜態方法,也是寫在類中的方法。self寫在哪個類中則表示該類的引用。

<?php
class Person {
	public static function status(){
		self::getStatus();
	}

	protected static function getStatus(){
		echo 'Person';
	}
}

class Men extends Person {
	public static function getStatus(){
		echo 'Men';
	}
}
Men::status(); // Person

self 寫在 Person 類中,所以調用的是 Person 類中的getStatus()方法,輸出 Person。

3、static也是指類本身
static 和 self 不同,是那個類調用該方法static就表示那個類。

<?php
class Person {
	public static function status(){
		static::getStatus();
	}

	protected static function getStatus(){
		echo 'Person';
	}
}

class Men extends Person {
	public static function getStatus(){
		echo 'Men';
	}
}
Men::status(); // Men

由于 Men 類調用了方法,static 就是 Men類,所以輸出的是 Men,即調用了 Men 類的 getStatus()方法。

原文鏈接:https://blog.csdn.net/weixin_44888397/article/details/114447234

  • 上一篇:沒有了
  • 下一篇:沒有了
欄目分類
最近更新