1. 程式人生 > >2018/03/10 每日一學PHP 之 修飾符 public/private/protected

2018/03/10 每日一學PHP 之 修飾符 public/private/protected

每一個 默認 找到 設置 公交 實現 規範 https size

對於面向對象

  修飾符的使用是我們最常用,也是很容易忽略的小細節。

  對於編程來說,把握好每一個小細節,就能構造出漂亮,優雅的程序。

public

  使用最多的修飾符,公共方法,允許所有訪問,就像一個公交車一樣,上來交錢[參數],有錢就行,無所謂是誰。

  對於這個修飾符救不在做更多的解釋了,因為他的使用實在是太多了。

  PS:如果一個方法沒有定義修飾符,那麽在PHP5中,默認是public。

private

  私有方法, 不允許在直接實例化後訪問,子類也不能直接訪問,只允許在自己的類中使用。

  

   道理我都懂,我就想問一下,我什麽時候應該用這個修飾符?都用Public不好麽?反正其他人也能看到

    1:什麽時候該用這個修飾符,這裏我找到了一個比較好理解的比喻,我挺喜歡這種比喻方法的。

      拿一個工廠舉例子,你作為一工廠老板,你的專利技術,自然不想被別人看到,以免被偽造的可能。所以你用private修飾。保護自己。然後就是public,一些無關緊要,或者可以讓別人仿造或者大眾化的技術或產品,其它人都可以從你這裏得到。

      總的來說,就是不希望暴露在外的方法都使用私有或者受保護的方法來執行。這也就詮釋了面向對象中的封裝。

    2:都用Public不好麽?反正其他人也能看到

      這裏也找到了一個回答,規範還是很重要的。

      如果自己開發個系統自己玩,那沒啥問題。但是,如果想提高技術,那麽必然涉及到團隊協作,或者你的系統開源給其他人使用。

      再比如,你自己開發的系統,過幾個月後,你其實也也記不得當初寫的啥,當你要修改代碼的時候,你還需要去小心的查看這個方法能不能先調用,當設置了權限過後,我就知道,這個肯定是內部調用的,外部就不要調了。

      還有個,如果一個類是實現一個很復雜的功能,那那個方法可能有幾十個,一眼看下去,晃眼,很難分清楚他們權限。

    3:上述部分回答摘自

      https://segmentfault.com/q/1010000008329419

protected

  受保護方法, 不允許在直接實例化後訪問,子類可以訪問,可以在類中使用。

   它的使用挺像private,不同的是他可以繼承.

   還是拿工廠舉例子,你的專利之前是設置成了private,但是隨著你的廠子慢慢變大,有了分廠,你的專利不給分廠用?不可能吧。所以protected

就是解決這個問題的。

  

  對於這三種使用,在之後的學習中,如果感覺到有新東西,隨時補充。

2018/03/10 每日一學PHP 之 修飾符 public/private/protected