十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
php中this和self的有什么區(qū)別?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

為蘆山等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及蘆山網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站建設(shè)、成都做網(wǎng)站、蘆山網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
php中this和self的區(qū)別是:self調(diào)用的是類,而$this調(diào)用的是實例化的對象。self可以訪問本類中的靜態(tài)屬性和靜態(tài)方法,以及const定義的常量,this可以調(diào)用本類中的方法和屬性。
區(qū)別:
self調(diào)用的是類,而$this調(diào)用的則是實例化的對象。
下面我們來詳細說明一下:
1、self可以訪問本類中的靜態(tài)屬性和靜態(tài)方法,可以訪問父類中的靜態(tài)屬性和靜態(tài)方法。用self時,可以不用實例化。
代碼示例:
class self_test {
static $instance;
public function __construct(){
self::$instance = 'instance';//靜態(tài)屬性只能通過self來訪問
}
public function tank(){
return self::$instance;//訪問靜態(tài)屬性
}
}
$str = new self_test();
echo $str->tank();結(jié)果輸出:
instance
2、self可以訪問const定義的常量
代碼示例:
class self_test {
const NAME = 'tancy';
public function tank(){
return self::NAME;
}
}
$str = new self_test();
echo $str->tank();三、this可以調(diào)用本類中的方法和屬性,也可以調(diào)用父類中的可以調(diào)用的方法和屬性,除了靜態(tài)屬性和const常量,基本上都可以使用this調(diào)用。
代碼示例:
class self_test {
public $public;
private $private;
protected $protected;
public function __construct(){
$this->public = 'public';
$this->private = 'private';
$this->protected = 'protected';
}
public function tank(){
return $this->public;
}
public function dell(){
return $this->private;
}
public function datesrt(){
return $this->protected;
}
}
$str = new self_test();
echo $str->tank();
echo "";
echo $str->dell();
echo "";
echo $str->datesrt();結(jié)果:
public private protected
總結(jié):self是引用靜態(tài)類的類名,而$this是引用非靜態(tài)類的實例名。
看完上述內(nèi)容,你們掌握php中this和self的有什么區(qū)別的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!