static 變量---所有對象共享一個變量(全局變量區),無需構造---概念上和.net相同
所有對象共享一個變量的實質:
聲明時:堆區存放一個地址,地址指向全局變量區。然后當類對象聲明時,只是在堆區中為自身添加該地址。
全局變量:聲明和調用全局變量----global $global_num=0;
(面向對象:注重封裝(裝入實體類),無全局變量)
面向對象的累加問題
1.全局變量
2.靜態變量:和全局變量本質上沒有區別,只是只能被類引用,體現了封裝性。
類中訪問方法
self::靜態變量 或者 類名::靜態變量
類外訪問方法
類名::靜態變量
類內部使用this,類外部使用對象實例訪問靜態變量都是錯誤。---和.net相同
static 方法--用于操作類內靜態變量(約定俗成)
不能訪問非靜態變量----邏輯上講不通
類內訪問:
類名::方法名 或者類的實例名->方法名 ---和.net不同
類外訪問
類名::方法名 或者self::方法名
實例變量,普通變量,實例方法,
靜態方法:節省內存,速度快(原因提前加載)。
轉載于:https://www.cnblogs.com/Watcher/p/3576967.html