本文目錄一覽:
- 1、php類中必須聲明public或者是private嗎?
- 2、PHP受保護的類和私有類有什麼區別?
- 3、PHP中public是什麼意思
- 4、php class中public,private,protected,static
- 5、PHP中private和public還有protected的區別
- 6、php怎麼理解這些個關鍵字啊,public;private;protect;final;static;const;我感覺這
php類中必須聲明public或者是private嗎?
不用必須聲明的,默認是public
public:權限是最大的,可以內部調用,實例調用等。
protected: 受保護類型,用於本類和繼承類調用。
private: 私有類型,只有在本類中使用。
PHP受保護的類和私有類有什麼區別?
受保護的繼承後可以訪問,私有的只能在該類中訪問,不會被繼承訪問\x0d\x0aclass Man{\x0d\x0a protected $name=’lee’;//受保護\x0d\x0a private $age=123;//私有\x0d\x0a function __construct(){\x0d\x0a echo $this-name;//lee\x0d\x0a echo $this-age;//123\x0d\x0a\x0d\x0a }\x0d\x0a\x0d\x0a}\x0d\x0aclass Girl extends Man{\x0d\x0a function __construct(){\x0d\x0a echo $this-name;//lee\x0d\x0a echo $this-age;//不會出現123,\x0d\x0a\x0d\x0a }\x0d\x0a\x0d\x0a}\x0d\x0a\x0d\x0anew Man();\x0d\x0a\x0d\x0anew Girl();
PHP中public是什麼意思
訪問控制(可見性)
對屬性或方法的訪問控制,是通過在前面添加關鍵字 public(公有),protected(受保護)或 private(私有)來實現的。被定義為公有的類成員可以在任何地方被訪問。被定義為受保護的類成員則可以被其自身以及其子類和父類訪問。被定義為私有的類成員則只能被其定義所在的類訪問。
php class中public,private,protected,static
1. public:權限是最大的,可以內部調用,實例調用
2. protected: 受保護類型,用於本類和繼承類調用
常用場景在權限設置
有需要用到權限的Class,只要繼承Base這個Class即可用到登錄驗證。執行Login的時候會先運行Base裏面的方法
3. private: 私有類型,只有在本類中使用。
4. static: 一般是在傳值的時候使用,表示值不會被修改,默認為public,可用::訪問
PHP中private和public還有protected的區別
public:聲明方法和屬性可以被隨意訪問。
Protected:聲明的方法和屬性只能被類本身和其繼承子類訪問。
private:只能被定義屬性和方法的類訪問。
private 是完全私有的,只有當前類中的成員能訪問到.
protected 是受保護的,只有當前類的成員與繼承該類的類才能訪問.
protected的訪問權介於public和private之間,實際上三者的區別就是權限問題,private和protected區別主要體現在其繼承類的訪問權限上,這些你可以自己編寫一個程序,寫個類,編譯一下你就很清楚他們權限的區別了。
私有成員private member
只能被成員函數和類的友元訪問
實行信息隱藏的類把其數據成員聲明為private
被保護成員protected member
對派生類derived class 就像public 成員一樣
對其他程序則表現得像private
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.常量一定要在聲明的時候就給初始值
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/258494.html