ホームページ > 記事 > PHPフレームワーク > ThinkPHP の __initialize() とクラス コンストラクター __construct() の使用法を分析する
この記事では、ThinkPHP の __initialize() とクラス コンストラクター __construct() を例とともに分析します。皆さんの参考に共有してください。具体的な分析は次のとおりです。
thinkphp の __construct は、モジュール クラスが上位クラスを継承し、上位クラスが定義されているため、気軽に使用することはできません。
関連学習の推奨事項: thinkphp
1. __initialize()
は php クラスの関数ではありません。php クラスのコンストラクターは のみです。 __construct()
.
2. クラスの初期化: サブクラスに独自のコンストラクター (__construct()) がある場合は、初期化のために独自のコンストラクターを呼び出します。そうでない場合は、親クラスのコンストラクターを呼び出します。独自の初期化。
3. サブクラスと親クラスの両方に __construct()
関数がある場合、サブクラスの初期化時に同時に親クラスの __constrcut() を呼び出したい場合は、サブクラスで parent::__construct()
.
を使用できます。次のように 2 つのクラスを記述する場合:
コードは次のとおりです:
class Action{ public function __construct() { echo 'hello Action'; } } class IndexAction extends Action{ public function __construct() { echo 'hello IndexAction'; } } $test = new IndexAction; //output --- hello IndexAction
明らかに、サブクラス IndexAction を初期化するときは、独自のコンストラクターを呼び出すため、出力は「hello IndexAction」になりますが、サブクラスを次のように変更します。
コードは次のとおりです。
class IndexAction extends Action{ public function __initialize() { echo 'hello IndexAction'; } }
サブクラス IndexAction には独自のコンストラクターがないため、出力は 'hello Action' になります。サブクラスの初期化時に同時に親クラスのコンストラクターを呼び出したい場合はどうすればよいですか?
コードは次のとおりです:
class IndexAction extends Action{ public function __construct() { parent::__construct(); echo 'hello IndexAction'; } }
このようにして、2つの文を同時に出力することができます もちろん、親クラスのサブクラスのメソッドを呼び出す方法もあります
コードは次のとおりです:
class Action{ public function __construct() { if(method_exists($this,'hello')) { $this -> hello(); } echo 'hello Action'; } } class IndexAction extends Action{ public function hello() { echo 'hello IndexAction'; } }
このように、2つの文を同時に出力することもでき、ここでのサブクラスのメソッド hello() は次のようになります。 ThinkPHP の __initialize() に似ています。
したがって、ThinkPHP での __initialize()
の登場は、プログラマがサブクラスを作成するときに parent::__construct()
を頻繁に使用することを回避しやすくするためだけです。同時に、フレームワーク内の親クラスのコンストラクターを正しく呼び出します。したがって、ThnikPHP でサブクラスを初期化するときは、__construct()
の代わりに __initialize() を使用する必要があります。もちろん、 Framework を _ に変更します。_initialize() 関数を任意の関数名に変更します。
関連する推奨事項:プログラミング ビデオ コース
以上がThinkPHP の __initialize() とクラス コンストラクター __construct() の使用法を分析するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。