2017-05-05 41 views
0

經過長時間搜索,在PHP類中使用關鍵字public函數__constructor函數後,我沒有更好的清晰度。函數聲明__constructor中沒有關鍵字public在PHP中

  1. 人們說__constructor本身是默認公開的。所以我不必提及public
  2. 如果我在PHP中提及或不如publicpublic function __constructor將不會有任何變化?
  3. 在PHP中聲明__constructor的最佳做法是什麼?有或沒有關鍵字public
  4. 如果我沒有提到public function __constructor前面的關鍵字public,我將面臨什麼缺點或問題?
+2

除非你想使用單例模式....只是明確地聲明你的構造函數是公共的.....代碼的簡單可讀性不僅僅是在編寫你的類時保存7個按鍵。爲什麼還要辯論這件事? –

回答

1

__constructor是一種方法。方法的可見性在PHP Doc中描述爲:

類方法可以定義爲public,private或protected。方法 聲明沒有任何明確的可見性關鍵字被定義爲 公共。

因此,沒有必要爲公共方法編寫「公共」可見性。

但我仍然更願意爲方法編寫明確的可見性(即使是「公共」) - 代碼對每個人都更爲明顯。

3

PSR-2 §4.3寫着:

能見度必須在所有的方法聲明。

__constructor是「所有方法」之一,因此該規則適用。

+0

請注意,PSR-2是一種編碼風格指南。堅持使用風格指南是一種很好的做法,但從技術上講沒有必要。你的回答與問題#3有關。 –

+0

對於所有方法都必須聲明可見性是不對的。這只是來自PSR-2 – arbogastes

+0

@arbogast同意的良好做法/編碼風格。如果您選擇使用PSR-2,您必須聲明它:)。 –

0

默認爲公共。總是包含它是一個很好的習慣,但是PHP4支持的沒有訪問修飾符的類,所以通常在代碼中看不到它們的用法。

相關問題