PHPクラスコンストラクターの問題
PHP中文网
PHP中文网 2017-05-16 12:02:46
0
6
591
リーリー

なぜこのように書けないのでしょうか?

リーリー

こんなことも書いていいですか?上記のパラメータが多すぎる場合は、年、馬、月を記述すればよいでしょうか。

リーリー

なぜコンストラクターにデフォルト値を追加する必要があるのですか。追加しないとエラーが報告されます。 ! ! jsを書くことに慣れているのでphpのコンストラクタが分かりません。パラメータにデフォルト値を割り当てる必要があるのでしょうか?


PHP中文网
PHP中文网

认证0级讲师

全員に返信(6)
Peter_Zhu

コンストラクターとは何の関係もありません。
関数のパラメーターにデフォルト値が指定されていない限り、関数を使用するときにパラメーターを渡す必要があります。

js (ES6 以前) では、関数のデフォルト値の設定が php よりも面倒であると言うのは正しくありません。

さらに、あなたが言及した 3 番目の方法は、オブジェクトまたは配列をパラメーターとして渡すことです。もちろん、値を 1 つずつ記述する代わりにループを使用することもできます。

いいねを押す +0
黄舟

1. デフォルト値を指定する必要はありません。ここで報告したエラーは、文法に従って、最初のパラメータにデフォルト値が指定されているためです。 (詳しくはドキュメントをご参照ください)
2. 対象物ももちろん可能です

いいねを押す +0
大家讲道理

これはコンストラクターとは関係ありません
関数を定義するときにパラメータを渡さない場合、エラーが報告されます

リーリー

$name は渡す必要がありますが、$age は必須ではありません。 $name必传,$age不用。
至于为什么,PHP语法规定その理由については、PHP 構文規則


PHP 構文はエラーを報告しません。PHP がエラーを報告する場合は、エラー メッセージを投稿してください。

いいねを押す +0
某草草

PHP 関数が明示的に指定されており、パラメーターにデフォルト値が指定されていない場合は、呼び出し時にパラメーターを渡す必要があります。デフォルト値がある場合は、呼び出し時にパラメータを渡さずにデフォルト値を読み取ることができます。

パラメータを明示的に渡すのが面倒な場合は、 func_get_args() 関数を使用してパラメータを読み取ることができます。

PHP5.6 以降では、関数 A(...$args) 形式を使用してパラメータを読み取ることもできます。

いいねを押す +0
巴扎黑

コンストラクターは、新しいオブジェクトを作成するときにデフォルトで呼び出される関数です

デフォルト値がない場合は関数のパラメータを渡す必要があります

これは文法上の規則です。

すべての関数はこのようなもので、パラメータがいくつあっても、1つずつ渡す必要があります

私が知っているすべての言語にはこのルールがあります

いいねを押す +0
大家讲道理

アレイを着用できますか

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート