您好,登錄后才能下訂單哦!
怎么在php面向對象中調用static靜態屬性?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
實例:
<?php header("content-type:text/html;charset=utf-8"); class Human{ static public $name = "小妹"; public $height = 180; static public function tell(){ echo self::$name;//靜態方法調用靜態屬性,使用self關鍵詞 //echo $this->height;//錯。靜態方法不能調用非靜態屬性 //因為 $this代表實例化對象,而這里是類,不知道 $this 代表哪個對象 } public function say(){ echo self::$name . "我說話了"; //普通方法調用靜態屬性,同樣使用self關鍵詞 echo $this->height; } } $p1 = new Human(); $p1->say(); $p1->tell();//對象可以訪問靜態方法 echo $p1::$name;//對象訪問靜態屬性。不能這么訪問$p1->name //因為靜態屬性的內存位置不在對象里 Human::say();//錯。say()方法有$this時出錯;沒有$this時能出結果 //但php5.4以上會提示 ?>
結論:
(1)、靜態屬性不需要實例化即可調用。因為靜態屬性存放的位置是在類里,調用方法為"類名::屬性名";
(2)、靜態方法不需要實例化即可調用。同上
(3)、靜態方法不能調用非靜態屬性。因為非靜態屬性需要實例化后,存放在對象里;
(4)、靜態方法可以調用非靜態方法,使用 self 關鍵詞。php里,一個方法被self:: 后,它就自動轉變為靜態方法;
看完上述內容,你們掌握怎么在php面向對象中調用static靜態屬性的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。