php面向對象中static靜態屬性與方法的內存位置分析與總結
本文實例分析了php面向對象中static靜態屬性與方法的內存位置。分享給大家供大家參考。具體如下:
static靜態屬性的.內存位置——>類,而不是對象。下面做測試來證明一下
<"content-type:text/html;charset=utf-8");class Human{ static public $name = "小妹"; public $height; public function tell(){ }}echo Human:$name;//不依賴於對象,就能直接訪問。因為靜態屬性的內存位置是在類裏,而不是對象。$p1 = new Human();$p2 = new Human();print_r($p1);echo $p1::$name = "夫人";//在$p1對象上改變靜態屬性的值,那$p2對象也會相應的改變。echo $p2::$name;?>
輸出結果可以看出:
1、echo Human:$name :類聲明完畢,就存在static屬性,並不依賴於對象。因此,靜態屬性只有一個(意思是在內存裏,存放的位置並不是在對象裏;如果在對象裏,那實例化一個對象,就相應的有該靜態的位置,如height屬性);
2、print_r($p1):打印結果只有height屬性,而沒有name;
3、靜態屬性的值變化後,所有對象的該屬性值都會受到影響。
對於方法,無論是靜態的、還是普通的,都是存在於類內存空間中。證明也很簡單,new一個對象,print_r(對象)即可。
希望本文所述對大家的php程序設計有所幫助。
-
javascript 日期類型學習筆記
1.創建日期對象複製代碼代碼如下:varnow=newDate();//獲得當前系統日期和時間varsomeDate=newDate(e("May25,2012"));varsomeDate=newDate("May25,2012");//與上相同varsomeDate=newDate((2010,0));//GMT時間2010年1月1日凌晨0時varsomeDate=newDate(2010,0);/...
-
講解HTML中iframe和frame的區別
不知道你在項目中用過frameset屬性沒有,frameset這個屬性是在去年我在一個在線客服系統製作中用過,因為客服系統要有固定的佈局,上面一塊,下面一塊等等,當時就是用的frameset和frame。在我用完了這些屬性之後,我才明白了iframe和frame的`區別。因為在這之前,我項目中...
-
如何理解Javascript的caller,callee,call,apply區別
在提到上述的概念之前,首先想説説javascript中函數的隱含參數:argumentsarguments該對象代表正在執行的函數和調用它的函數的參數。[function.]arguments[n]參數function:選項。當前正在執行的Function對象的名字。n:選項。要傳遞給Function對象的從0開始的參數值...
-
Dreamweaver技巧詳解
Dreamweaver由MX版本開始使用Opera軟件公司的排版引擎“Presto”作為網頁預覽。下面給大家介紹Dreamweaver技巧,一起來學習吧!Dreamweaver技巧詳解1、靈活運用樣式熟悉網頁設計的網友就知道,調用Style的方法很多,我們可以單擊鼠標右鍵選擇CustonStyle來調用Style...