2017-05-05 3 views
0

PHPクラスの__constructorキーワードでキーワードpublicを使用して、長い検索を行った後の方がはっきりしていません。PHPのキーワードpublicを除く__constructorのクラス内での関数宣言

  1. __constructorという人は、デフォルトでは公開されています。だから私はpublicとして言及を使用する必要はありません。
  2. PHPでpublic function __constructorpublicと書いてもらえませんか?
  3. PHPで__constructorを宣言するベストプラクティスは何ですか?キーワードpublicの有無にかかわらず、
  4. public function __constructorの先頭にキーワードpublicがないと、私は直面する短所や問題は何ですか?
+2

シングルトンパターンを使用したいのでない限り、あなたのコンストラクタをpublicとして宣言してください。クラスの作成時に7つのキーストロークを保存するよりもはるかに簡単です。なぜこれも議論しているのですか? –

答えて

1

__constructorはメソッドです。メソッドの可視性は、PHP Docで次のように記述されています。

クラスメソッドは、public、private、またはprotectedとして定義できます。明示的な可視性キーワードなしで宣言されたメソッド は、 publicと定義されています。

したがって、パブリックメソッドに「パブリック」可視性を書く必要はありません。

しかし、私は、明示的な可視性(たとえ 'public')をメソッドに書くことを好みます - コードは誰にとっても明白です。

3

PSR-2 §4.3読み取り:

可視性は、すべてのメソッドで宣言しなければなりません。

__constructorは「すべてのメソッド」の1つで、ルールが適用されます。

+0

PSR-2はコーディングスタイルガイドです。スタイルガイドに固執するのは良い習慣ですが、技術的には必要ありません。あなたの答えは質問#3に関連しています。 –

+0

すべてのメソッドに対して可視性を宣言する必要はありません。それはPSR-2の良い練習/コーディングスタイルです。 – arbogastes

+0

@arbogast同意します。あなたはPSR-2を使用するよう選択した場合、それを宣言しなければなりません:)。 –

0

デフォルトはpublicです。いつもPHP4をインクルードするのは良い方法ですが、PHP4はアクセス修飾子を持たないクラスをサポートしていましたので、レガシーコードでは使用しないことが一般的です。

関連する問題