靜態修飾符static,類中的常量定義修飾符


static可以用來區分成員變量、方法是屬於類本身還是屬於類實例化后的對象。有static修飾的成員屬於類本身,沒有static修飾的成員屬於類的實例。

靜態變量僅在局部函數域中存在,但當程序執行離開此作用域時,其值並不丟失
static是一個修飾符,用於修飾成員(成員變量和成員函數)
靜態成員隨着類的加載而加載。
靜態成員優先於對象存在。
靜態成員被所有對象所共享
靜態成員多了一個中調用方式,可以被類名直接調用。
靜態的優缺點
優點: 靜態成員多了一種調用方式。可以直接被類名調用 格式 :類名.靜態成員。也可以被對象調用。
弊端 : 靜態方法只能訪問靜態成員,出現了訪問局限性。

靜態修飾的數據對象共享的數據,存放在方法區的靜態區中。
非靜態的數據,是每一個對象特有數據。存放在對象的所屬的堆內存中。

當成員變量被靜態修飾后,和非靜態成員變量的區別:

靜態變量也稱為類變量,也就是直接可以被類名調用的變量。這個變量是所屬於類的。
非靜態變量成為成員變量,或者實例變量,是被對象調用的,是所屬具體對象的。
靜態變量隨着類的加載而加載,也意味着隨着類的消失而消失。生命周期最長。
實例變量,隨着對象的創建而加載,隨着對象的消失而消失。按照對象的生命周期而存在。
靜態變量存儲在方法區的靜態區中。
實例變量存在於對象所屬的堆內存中。
靜態變量數據,被所有對象所共享。
實例變量是對象中的特有數據

類中的常量定義修飾符
在PHP中定義常量是通過define()函數來完成的,但在類中定義常量不能使用define(),而需要使用const修飾符。類中的常量使用const定義后,其訪問方式和靜態成員類似,都是通過類名或在成員方法中使用self訪問,但在PHP 5.3.0之后也可以使用對象來訪問。被const定義的常量不能重新賦值,如果在程序中試圖改變它的值將會出現錯誤。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM