2011-01-13 2 views
9

デフォルトで公開されている場合、キーワードpublicを使用してクラスプロパティ(変数)またはメソッド(関数)を宣言するのはなぜですか?それとも、彼らは?PHPクラスはなぜpublicキーワードを使用しますか?

私の質問に別の言い方をすれば、publicは冗長ですか?私はprivateprotectedを理解しますが、とにかくクラスメンバーが公開されている場合はpublicと宣言するのはなぜですか?

答えて

7

はい、publicがデフォルトです(visibility docs参照)。

人はそれを追加するので、他のすべてのメソッド/プロパティと一致します。

さらに、プロパティをパブリックに宣言し、publicを使用しない場合は、varを使用する必要があります。これは推奨されておらず、ある時点で廃止される可能性があります。

+0

プロパティの場合は、[OK]をクリックします。しかし、現時点で公共の財産が本当に必要なのは誰ですか?パブリックメソッドの場合、これは慣習や相互運用性に優れた慣例(PSR-2など)です。しかし、技術的な利点はありません。あなたの脳がすでに公開されているキーワードを見るのに慣れていなければ、読みやすさは向上しないと私は主張します。 – donquixote

2

これはデフォルトの可視性レベルなので冗長です。あなたができるときにそれらを避けるべきです。いくつかの人々はコードを少しだけ読みやすくするためにpublicキーワードを明示的に追加します。

+1

何(誰)とき私ができる避けますか? – Ben

+1

@Steve:パブリックレベルのヴァースの 'public'キーワードを無視することができます: – Sarfraz

+1

@Stve' public'キーワード。 – Savetheinternet

3

php5.3では、varキーワードを使用するとE_STRICTエラーが発生するため、publicを使用してオブジェクトvaiablesを宣言する必要があります。機能に関しては、一貫性の高いものだと私は信じています。

+0

いいえ、E_STRICTを5.0から5.13に引き上げました(ドキュメントによると)。しかし、彼らは通知を落とした。 – NikiC

+0

本当に?ヘッドアップをありがとう。私はそれが戻って変更されたことを決して – Travis

2

あなたはPSR-2をフォローしたい場合は、あなたがそれを使用する必要がありますので、しかし、可視性のキーワードは、すべての機能にPSR-2により必要とされるpublicを使用するための技術的な理由はありません。

4.3。メソッド

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

https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md#43-methods

関連する問題