なぜこのように書けないのでしょうか?
リーリーこんなことも書いていいですか?上記のパラメータが多すぎる場合は、年、馬、月を記述すればよいでしょうか。
リーリーなぜコンストラクターにデフォルト値を追加する必要があるのですか。追加しないとエラーが報告されます。 ! ! jsを書くことに慣れているのでphpのコンストラクタが分かりません。パラメータにデフォルト値を割り当てる必要があるのでしょうか?
天蓬老师2017-05-16 12:04:46
コンストラクターとは何の関係もありません。
関数のパラメーターにデフォルト値が指定されていない限り、関数を使用するときにパラメーターを渡す必要があります。
js (ES6 以前) では、関数のデフォルト値の設定が php よりも面倒であると言うのは正しくありません。
さらに、あなたが言及した 3 番目の方法は、オブジェクトまたは配列をパラメーターとして渡すことです。もちろん、値を 1 つずつ記述する代わりにループを使用することもできます。黄舟2017-05-16 12:04:46
1. デフォルト値を指定する必要はありません。ここで報告したエラーは、文法に従って、最初のパラメータにデフォルト値が指定されているためです。 (詳しくはドキュメントをご参照ください)
2. 対象物ももちろん可能です
大家讲道理2017-05-16 12:04:46
これはコンストラクターとは関係ありません
関数を定義するときにパラメータを渡さない場合、エラーが報告されます
$name
は渡す必要がありますが、$age
は必須ではありません。 $name
必传,$age
不用。
至于为什么,PHP语法规定
その理由については、PHP 構文規則
PHP 構文はエラーを報告しません。PHP がエラーを報告する場合は、エラー メッセージを投稿してください。
某草草2017-05-16 12:04:46
PHP 関数が明示的に指定されており、パラメーターにデフォルト値が指定されていない場合は、呼び出し時にパラメーターを渡す必要があります。デフォルト値がある場合は、呼び出し時にパラメータを渡さずにデフォルト値を読み取ることができます。
パラメータを明示的に渡すのが面倒な場合は、 func_get_args() 関数を使用してパラメータを読み取ることができます。
PHP5.6 以降では、関数 A(...$args) 形式を使用してパラメータを読み取ることもできます。
巴扎黑2017-05-16 12:04:46
コンストラクターは、新しいオブジェクトを作成するときにデフォルトで呼び出される関数です
デフォルト値がない場合は関数のパラメータを渡す必要があります
これは文法上の規則です。すべての関数はこのようなもので、パラメータがいくつあっても、1つずつ渡す必要があります
。私が知っているすべての言語にはこのルールがあります