php中,靜態(tài)方法可以使用self關鍵詞來調用非靜態(tài)變量,例“self::$name”;一個方法被“self::”后,它就自動轉變?yōu)殪o態(tài)方法。注:靜態(tài)方法不能調用非靜態(tài)屬性;因為非靜態(tài)屬性需要實例化后,存放在對象里。
讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:域名申請、網(wǎng)站空間、營銷軟件、網(wǎng)站建設、思禮網(wǎng)站維護、網(wǎng)站推廣。
推薦:《PHP視頻教程》
PHP中靜態(tài)(static)調用非靜態(tài)方法詳解
這里分析了php面向對象中static靜態(tài)屬性和靜態(tài)方法的調用。關于它們的調用(能不能調用,怎么樣調用),需要弄明白了他們在內存中存放位置,這樣就非常容易理解了。靜態(tài)屬性、方法(包括靜態(tài)與非靜態(tài))在內存中,只有一個位置(而非靜態(tài)屬性,有多少實例化對象,就有多少個屬性)。
實例:
<?php
header("content-type:text/html;charset=utf-8");
class Human{
static public $name = "小妹";
public $height = 180;
static public function tell(){
echo self::$name;//靜態(tài)方法調用靜態(tài)屬性,使用self關鍵詞
//echo $this->height;//錯。靜態(tài)方法不能調用非靜態(tài)屬性
//因為 $this代表實例化對象,而這里是類,不知道 $this 代表哪個對象
}
public function say(){
echo self::$name . "我說話了";
//普通方法調用靜態(tài)屬性,同樣使用self關鍵詞
echo $this->height;
}
}
$p1 = new Human();
$p1->say();
$p1->tell();//對象可以訪問靜態(tài)方法
echo $p1::$name;//對象訪問靜態(tài)屬性。不能這么訪問$p1->name
//因為靜態(tài)屬性的內存位置不在對象里
Human::say();//錯。say()方法有$this時出錯;沒有$this時能出結果
//但php5.4以上會提示
?>1、靜態(tài)屬性的調用,用self:: ,無論是靜態(tài)或非靜態(tài)方法都可以調用靜態(tài)屬性;結論:
2、靜態(tài)方法可以調用非靜態(tài)方法,使用 self 關鍵詞。php里,一個方法被self:: 后,它就自動轉變?yōu)殪o態(tài)方法;
3、靜態(tài)方法不能調用非靜態(tài)屬性。因為非靜態(tài)屬性需要實例化后,存放在對象里;
網(wǎng)站題目:php靜態(tài)方法怎么調用非靜態(tài)變量?
轉載注明:http://chinadenli.net/article20/cgssjo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供手機網(wǎng)站建設、App開發(fā)、網(wǎng)站制作、外貿建站、網(wǎng)站內鏈、全網(wǎng)營銷推廣
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)