この記事では、ThinkPHP の _initialize() とクラス コンストラクター _construct() の使用法を主に紹介し、ThinkPHP でのクラスの初期化時にサブクラスを構築する方法をサンプル形式で分析します。必要な友人は、設計におけるより重要な概念を参照できます。
この記事では、例を通じて ThinkPHP の __initialize() とクラス コンストラクター __construct() を分析します。皆さんの参考に共有してください。具体的な分析は次のとおりです。 thinkphp の
__construct は、モジュール クラスが上位クラスを継承しており、__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'; } }
class IndexAction extends Action{ public function __construct() { parent::__construct(); echo 'hello IndexAction'; } }
このようにして、親クラスでサブクラスのメソッドを呼び出すこともできます。 ##
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'; } }
以上がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。
関連する推奨事項:
PHP の move_uploaded_file() 関数##ThinkPHP クラス コンストラクター _construct() _initialize() との違い
以上がThinkPHP におけるinitialize() とコンストラクターconstruct() の使用法分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。