PHP でクラスを作成するときに、グローバル変数を初期化するためにコンストラクターを使用する必要があるのはなぜですか?

WBOY
リリース: 2016-07-06 13:53:40
オリジナル
1373 人が閲覧しました

私がした質問が非常に基本的なものであることは承知していますが、ここで質問があります

リーリー

なぜこのように書くのですか? $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

関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート