私がした質問が非常に基本的なものであることは承知していますが、ここで質問があります
リーリーなぜこのように書くのですか? $this->name=$name;
なぜグローバル変数を初期化する必要があるのですか;
私がした質問が非常に基本的なものであることは承知していますが、ここで質問があります
リーリーなぜこのように書くのですか? $this->name=$name;
なぜグローバル変数を初期化する必要があるのですか;
リーリー
理由も質問も必要ありません、使用するときはこのように書いてください。
1- クラスがコンストラクターを持たなければならないという要件はありません
2- 構築中に属性を初期化する必要があるという要件はありません
たとえば
このように書くことと書き方に違いはなく、使用するときにそれに応じて変更する必要があるだけです。したがって、あなたの質問に対する答えは、コードを書いた人がそれが良いと思ってコードを書いたということです。
それ以外の場合、いつ初期化されますか
$name
只是个局部变量,出了 __construct
にはアクセスできなくなりました。
お誘いありがとうございます。 。でも、あまりにも具体的なことについてはよくわかりません
__construct は構築メソッドです
クラスをインスタンス化する際に最初に実行されるメソッドです
__construct の 2 つのパラメーターはインスタンス化中に渡されます
たとえばnew car ($name,$num);
このようにインスタンス化した後、$name 変数と $num 変数は car クラスのプライベート変数になります
クラス自体で呼び出すと便利です。 。 。
$this に関しては、$this-> はクラス自体のメソッドまたはプロパティを呼び出すことができます。
まずは公式マニュアルを読んだ方が良いですhttp://php.net/manual/zh/ language.oop5.basic.php
通常はコンストラクター内で、メンバー変数を初期化し、多くのメンバー メソッドで使用されるクラスをインスタンス化します (この方法でコードを記述する方が明確ですが、一部のクラスは一度しか使用されず、コンストラクター内でインスタンス化することはお勧めできません。これはプログラムに影響します)パフォーマンス)
実は、初めて使い始めたとき
、なぜこんな使い方をするのか分かりませんでした。低レベルの質問などというものはありません。わからない場合は質問してください。コンストラクターの機能は、新しいオブジェクトを作成するたびに、最初にこのメソッドを呼び出すことです。端的に言えば、それは初期化の機能です。お役に立てば幸いですphp