2017-05-05 77 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支持的没有访问修饰符的类,所以通常在代码中看不到它们的用法。

相关问题