ThinkPHP は優れた PHP 開発フレームワークであり、開発者に広く愛されています。開発プロセスでは多くのクラスを作成することがよくありますが、現在のクラスで別のクラスのメソッドや属性を使用する必要がある場合、どうすればよいでしょうか?この記事では、ThinkPHP で別クラスのメソッドを呼び出す方法を紹介します。
1. クラスのインポート
別のクラスのメソッドを使用するには、最初のステップはもちろん、そのクラスを現在のクラスに導入することです。 ThinkPHP では、import
関数を使用してこれを実現できます。
import('命名空间.类名');
このうち、namespace
と class name
がそれぞれインポートされたクラスです。 . 名前空間とクラス名。インポートされたクラスがどの名前空間にもない場合は、クラス名を import
関数に直接渡すだけです。
たとえば、クラス OtherClass
があり、これにはメソッド test
が含まれています。このメソッドを現在のクラスで使用したい場合は、次のように記述できます。これ:
import('app\MyClass\OtherClass'); class MyClass { public function test() { $other = new OtherClass(); $other->test(); } }
このようにして、MyClass
の OtherClass
で test
メソッドを使用できます。
2. クラスのインスタンス化
クラスをインポートした後、クラスのメソッドとプロパティを使用するために、new
キーワードを使用してクラスをインスタンス化する必要もあります。クラス。通常、インポートされたクラスは現在のクラスのコンストラクターでインスタンス化されます。例:
import('app\MyClass\OtherClass'); class MyClass { private $other; public function __construct() { $this->other = new OtherClass(); } public function test() { $this->other->test(); } }
コンストラクターで OtherClass
をインスタンス化し、それを MyClass
のプライベート プロパティ $other
に割り当てます。次に、test
メソッドで、$other
オブジェクトの test
メソッドを呼び出すことができます。
3. メソッドの呼び出し
インポートされたクラスをインスタンス化した後、クラス内のメソッドを使用できるようになります。メソッドを呼び出す前に、現在のクラスとインポートされたクラスの関係を理解する必要があります。
現在のクラスがインポートされたクラスのサブクラスである場合、parent
キーワードを直接使用して、インポートされたクラスのメソッド。例:
import('app\MyClass\OtherClass'); class MyClass extends OtherClass { public function test() { parent::test(); } }
MyClass
では、OtherClass
を継承し、test
メソッドをオーバーライドしますが、## も使用したいと考えています。 #OtherClass の ##test
メソッドは、parent::test()
を使用して呼び出すことができます。
import('app\MyClass\OtherClass'); class MyClass { private $other; public function __construct() { $this->other = new OtherClass(); } public function test() { $this->other->test(); } }
この例では、
MyClass と OtherClass
の間に継承関係はありません。$other
オブジェクトをインスタンス化します。 OtherClass
の test
メソッド。 概要
上記は、ThinkPHP で別のクラスのメソッドを呼び出す方法です。親子関係でも協力関係でも、使用するクラスを
import 関数でインポートし、インスタンス化後にそのメソッドを呼び出すことができます。頻繁に呼び出す必要があるクラスやメソッドについては、ThinkPHP のグローバル ファイルに定数や関数を定義して、プロジェクト内のどこからでも簡単に呼び出すことができます。
以上がthinkphpで別のクラスのメソッドを呼び出す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。