導航:首頁 > 編程語言 > php類private

php類private

發布時間:2022-06-13 23:06:43

php怎麼理解這些個關鍵字啊,public;private;protect;final;static;const;我感覺這

public: 公有屬性或方法
在子類中可以通過self::var 或self::method 來調用,可以通過parent::method來調用父類中的方法,但不能調用公有屬性.
在實例中可以通過$obj->var或self::method 來調用
protected: 受保護類型
在子類中可以通過self::var 或self::method調用,可以通過parent::method來調用父類中的方法
在實例中不能通過$obj->var 來調用 protected類型的方法或屬性
private: 私有類型
該類型的屬性或方法只能在該類中使用,在該類的實例、子類中、子類的實例中都不能調用私有類型的屬性和方法
再來說說final
1.final不能用來修飾成員屬性
2.final只能修飾類和方法
作用:被修飾的類不能被子類所繼承;被修飾的方法不能被子類的方法覆蓋。
然後來說說static
1.static用來修飾成員屬性和成員方法,但不能用來修飾類
2.用static修飾的成員屬性可以被同一個類的所有對象共享
3.靜態的數據是存在 內存中的 數據段中(初始化靜態段)
4.靜態的數據是在類在第一次載入時,分配到內存中的
5.什麼是類被載入?只要在程序中使用到這個類(有這個類名出現)
6.靜態的成員屬性都要用類名去訪問,不用創建對象,不用對象去訪問;在類里邊可以用self代表本類($this)
7.靜態方法,不能訪問非靜態的成員屬性(但是,在非靜態方法卻能訪問靜態的成員屬性),非靜態的成員屬性,必須用對象訪問,在內部訪問非靜態成員屬性,用$this.
8.如果你確定一個方法中不需使用到非靜態的成員屬性,則可以將這個方法聲明為靜態方法,不需實例化對象,就可以訪問
最後來說說const
1.它只能用來修飾成員屬性
2.在類中聲明常量必須使用const
3.訪問方式和訪問靜態成員屬性一樣(類外使用 類名::成員屬性,類里邊則使用self::成員屬性)
4.常量一定要在聲明的時候就給初始值

⑵ private 在PHP里到底有什麼用

private都是相對於類來說的,我接觸php的時候感覺挺簡單的直到碰到了類,各種繼承,各種調用,真的很煩。比如我要實現輸出helloword,如果用面向對象來寫就是定義一個hello類,然後輸出helloword,同時定義了一些屬性。某一天其他人看到了這個類,想要實現他的想法例如輸出hello,他需要繼承hello這個類,然後在子類中輸出hello,但是我自己的這個類某些方法或者屬性不想讓別人使用,這個時候就需要加上private,使我類里的一些屬性或者方法私有化,只能自己使用。

⑶ php類中必須聲明public或者是private嗎

不用必須聲明的,默認是public

public:許可權是最大的,可以內部調用,實例調用等。

protected: 受保護類型,用於本類和繼承類調用。

private: 私有類型,只有在本類中使用。

⑷ [php]private public protected 三者沒弄明白

public,公開的,是所有實例都可以訪問
protected,受保護的,只有存在繼承關系的可以訪問,比如子類,父類
private,私有的,只有對應的類內部能夠調用

⑸ php protected private什麼時候該用什麼

private 是完全私有的,只有當前類中的成員能訪問到. protected 是受保護的,只有當前類的成員與繼承該類的類才能訪問. 這兩個是訪問類中成員許可權的限制符.在類外如果想使用類中的成員,只能直接使用public類型的,protected和private都是不能訪問的

⑹ 說說php面向對象編程時static,public,private,protected 各有什麼意義

staticpublic與publicstatic是等價的,這兩者只是兩個修飾符的順序不同。根據oracle.com教材中第八章的描述,如果兩個或兩個以上的(不同的)欄位修飾符出現在欄位聲明,它們出現的順序需與FieldModifier一致,這只是習慣,但不是必需的。部分修飾符說明:public是訪問許可權修飾符,用於控制外界對類內部成員的訪問,聲明為public的對象成員是完全共有的,外界可以隨意訪問,除此之外還有private,protected和默認。static控制類成員變化的修飾符。static是靜態成員修飾符,其修飾的靜態變數脫離具體對象獨立存在,在內存中之後一份拷貝,所有的對象都公用這一個存儲空間,所以對static修飾的靜態變數進行的修改對該類的所有對象都起作用。static修飾的靜態函數代表所有對象的統一操作,只能調用靜態變數。static是針對面向對象中的「多態」而提出來的,static修飾的靜態成員不存在多態性。附:FieldModifier順序

⑺ php中聲明變數var與private、public、static的區別

var
是聲明一個變數/對象,public,
private,
是類/類的屬性/類的欄位的訪問修飾符,static是類/類的屬性/類的欄位的修飾符

⑻ PHP中private和public還有protected的區別

public:聲明方法和屬性可以被隨意訪問。
Protected:聲明的方法和屬性只能被類本身和其繼承子類訪問。
private:只能被定義屬性和方法的類訪問。

private 是完全私有的,只有當前類中的成員能訪問到.
protected 是受保護的,只有當前類的成員與繼承該類的類才能訪問.

protected的訪問權介於public和private之間,實際上三者的區別就是許可權問題,private和protected區別主要體現在其繼承類的訪問許可權上,這些你可以自己編寫一個程序,寫個類,編譯一下你就很清楚他們許可權的區別了。

私有成員private member
只能被成員函數和類的友元訪問
實行信息隱藏的類把其數據成員聲明為private

被保護成員protected member
對派生類derived class 就像public 成員一樣
對其他程序則表現得像private

⑼ PHP private繼承疑問

父類中的私有屬性只能當前類的對象或函數進行訪問和修改。比如你子類對象的$var直接$var->a=100是賦值不了父類$a的。但是父類中的構造方法和getNum函數是公有的,$var可以直接調用。所以:
1、$this->a指父類的私有屬性$a,你子類中調用了父類構造方法,父類構造方法再把它賦值為100;
2、getNum函數是公有的,getSonNum等價於getNum,該方法輸出了$a,son類確實沒有a這個屬性,getNum函數輸出的是父類的中的$a。

⑽ PHP的類的private變數調用問題

因為__get(); __set() 方法在類的內部,類的內部是可以調用類的私有屬性的變數

閱讀全文

與php類private相關的資料

熱點內容
Python紅色五角星畫法 瀏覽:337
壓縮餅干翻譯 瀏覽:686
macos命令行窗口的樣式 瀏覽:248
androidflipboard 瀏覽:878
投資公司投資源碼 瀏覽:74
python語料訓練 瀏覽:338
武夷岩茶產地溯源碼 瀏覽:383
求生組隊用什麼伺服器最好 瀏覽:24
php回調匿名回調函數 瀏覽:107
源碼翻譯軟體哪裡找 瀏覽:523
邪惡程序員解說 瀏覽:600
醫生找程序員 瀏覽:423
cad三維剖切命令 瀏覽:55
壓縮機的氣能流多遠 瀏覽:85
linuxfdiskt 瀏覽:696
iphone沒有id怎麼用app 瀏覽:983
手機淘寶網站源碼 瀏覽:743
小車上的壓縮機怎麼改氣泵 瀏覽:568
免費雲伺服器任務 瀏覽:211
蘋果怎樣在手機上做壓縮文件 瀏覽:644