2017-10-23 6 views
0

私が最初またはコンストラクタの引数の最後に複雑なコンストラクタのパラメータを置く場合、私は疑問に思いは、正しい方法と、なぜ何です?:何がコンストラクタargs、単純な、または複雑な引数で最初に来るのですか?

function __construct(Reflector $reflector, $autoResolve, $canUseAnnotations); 

または:

function __construct($autoResolve, $canUseAnnotations, Reflector $reflector); 

注:$ autoResolveと$ canUseAnnotationsは単なるブール値です。

+0

唯一の制限は、最後に省略可能な引数(デフォルト値を持つ)を置くことです。他のものは個々のコーダーまでです –

+0

だから、それは標準ですか? @ MarkBakerのように – e200

+0

によると、オプション引数は最後にする必要があります。それが唯一の制限です。私が認識している標準はありません – sheplu

答えて

0

マークが既に指摘したように、あなたのパラメータをどのように注文するかは完全にあなたに任せます。 これの最も重要な部分は一貫性です(str /配列関数の点でPHPの矛盾を参照)。つまり、そのようなクラスがもっとあれば、それらのクラスに対してできるだけ等しくパラメータを並べる必要があります。

質問自体(そして次は私の個人的意見です)に関しては、私はより複雑なパラメータを置くのが好きです。なぜか分かりませんが、それは私にはちょうどいい感じです。

関連する問題