空のコンストラクタを定義するか、コンストラクタの定義を完全にPHPのままにしておくことをお勧めしますか?私はコンストラクタを定義する習慣がreturn true;
だが、コンストラクタは何もする必要がなくても完了するためだ。PHPの空のコンストラクタ
答えて
コンストラクタを必要としない場合は、除外することをお勧めします。コードを書く必要はありません。あなたがそれを書いたら、それを空のままにしてください...真を返すことは目的を持っていません。
コンストラクタは常に、定義されたクラスのインスタンスを返します。したがって、コンストラクタ内では "return"を使用しません。最後に、あなたがgonaを使用していない場合は、それを定義しない方がいいです。
オブジェクトをインスタンス化しない場合は、空のコンストラクタを定義してください。その場合は__construct()
を非公開にしてください。
EDIT:PHPは現在、他のオブジェクト指向プログラミング言語のように振る舞うので、
以前の答えは、もはや有効ではありません。 コンストラクタは、インターフェイスの一部ではありません。したがって、あなたが今、あなたは
いかなる問題もなく好むどのようにそれらを無効にするために許可されている唯一の例外は、次のとおりです。
interface iTest
{
function __construct(A $a, B $b, Array $c);
}
class Test implements iTest
{
function __construct(A $a, B $b, Array $c){}
// in this case the constructor must be compatible with the one specified in the interface
// this is something that php allows but that should never be used
// in fact as i stated earlier, constructors must not be part of interfaces
}
OLD PREVIOUS-VALID NOT-もう答え:
が空のコンストラクタとコンストラクタがまったくない場合の重要な違いです。
class A{}
class B extends A{
function __construct(ArrayObject $a, DOMDocument $b){}
}
VS
class A{
function __construct(){}
}
class B extends A{
function __construct(ArrayObject $a, DOMDocument $b){}
}
// error B::__construct should be compatible with A constructor
それだけでなく、 'A'に定義済みのコンストラクタがあり、' B'に定義済みの空のコンストラクタがある場合は、基本的にはコンストラクタを削除しますが、それを完全に残しておけば、親を継承しますコンストラクタ。結論は、空のコンストラクタを「常に」または「決して」含むべきではなく、どちらかを行うときに同じことを「常に」意味するわけではないということです。それはすべてコンテキストに関するものです。 – Jason
2つの違いがあります。空の__construct()
関数を記述すると、親クラスから継承した__construct()
を上書きします。
それを必要とせず、親コンストラクタを明示的に上書きしたくない場合は、まったく書き込まないでください。
- 1. Python空のコンストラクタ
- 2. RailsのActiveModel空のコンストラクタは
- 3. 名前空間内のコンストラクタ
- 4. jQueryスタイルPHPのコンストラクタ
- 5. 空のコンストラクタとコンストラクタの違いは何ですか
- 6. MVVMのDataTemplateと非空のビューモデルのコンストラクタ
- 7. PHPのコンストラクタの継承
- 8. コンストラクタ内のphpオブジェクトのキャッシング
- 9. php oopコンストラクタ
- 10. C++空文字列コンストラクタ
- 11. コンストラクタargsのSpring p名前空間?
- 12. 空のコンストラクタとnewInstanceを持つフラグメント
- 13. PHP空の値
- 14. PHP空のオブジェクトメンバー
- 15. PHP空のArrayObject
- 16. PHP:コンストラクタの伝播やコンクリートの子供にコンストラクタを移動
- 17. PHPのコンストラクタ関数との混同
- 18. PHPの静的メソッドのコンストラクタ代替
- 19. PHP/Laravelのコンストラクタ、$ thisキーワード、コントローラクラスの理解
- 20. PHPのISSET()VS!空()
- 21. PHANTOMJS PHP:空のレスポンスオブジェクト
- 22. PHP - 空の配列
- 23. PHPとし、クローンの代わりに、コンストラクタ
- 24. PHPのコンストラクタと静的関数
- 25. PHPの空のvar == 0? PHPで
- 26. PHP - init親varialbles(コンストラクタ付き)
- 27. 空の角かっこのあるデフォルトのコンストラクタC++のエラー
- 28. 2つの空のキーPHP
- 29. PHP - データベースの空のJSON値
- 30. Apacheの空のPHPページ
コンストラクタの戻り値は完全に無視されます。 – KingCrunch
実際に、コンストラクタの内側に戻ってきた人が見つかった場合、自分のコードを自分のものとマージすることは決してありません。 –