Heim > PHP-Framework > Denken Sie an PHP > So rufen Sie eine Methode in einer anderen Klasse in thinkphp auf

So rufen Sie eine Methode in einer anderen Klasse in thinkphp auf

PHPz
Freigeben: 2023-04-17 10:13:31
Original
1319 Leute haben es durchsucht

ThinkPHP ist ein hervorragendes PHP-Entwicklungsframework und bei Entwicklern sehr beliebt. Während des Entwicklungsprozesses schreiben wir oft viele Klassen. Manchmal müssen wir Methoden oder Attribute einer anderen Klasse in der aktuellen Klasse verwenden. Was sollen wir also tun? In diesem Artikel wird erläutert, wie Sie eine Methode einer anderen Klasse in ThinkPHP aufrufen.

1. Eine Klasse importieren

Um die Methode einer anderen Klasse zu verwenden, besteht der erste Schritt natürlich darin, die Klasse in die aktuelle Klasse einzuführen. In ThinkPHP können wir die Funktion import verwenden, um dies zu erreichen: import 函数来实现:

import('命名空间.类名');
Nach dem Login kopieren

其中,命名空间类名 分别是被导入类的命名空间和类名。如果被导入的类不在任何命名空间下,直接将类名传给 import 函数即可。

例如,我们有一个类 OtherClass,其中包含一个方法 test,现在要在当前类中使用该方法,可以这样写:

import('app\MyClass\OtherClass');
class MyClass {
    public function test() {
        $other = new OtherClass();
        $other->test();
    }
}
Nach dem Login kopieren

这样就可以在 MyClass 中使用 OtherClass 中的 test 方法了。

二、实例化类

在导入类之后,我们还需要用 new 关键字实例化该类,才能使用该类中的方法和属性。通常情况下,我们在当前类的构造方法中实例化被导入类。例如:

import('app\MyClass\OtherClass');

class MyClass {
    private $other;
    public function __construct() {
        $this->other = new OtherClass();
    }
    public function test() {
        $this->other->test();
    }
}
Nach dem Login kopieren
Nach dem Login kopieren

在构造方法中,我们实例化了 OtherClass,并将其赋值给了 MyClass 的私有属性 $other。然后在 test 方法中,我们可以调用 $other 对象中的 test 方法了。

三、调用方法

在实例化被导入的类之后,我们就可以使用该类中的方法了。在调用方法之前,我们需要先了解当前类与被导入类之间的关系。

  1. 父子关系

如果当前类是被导入类的子类,我们可以直接使用 parent 关键字调用被导入类的方法。例如:

import('app\MyClass\OtherClass');

class MyClass extends OtherClass {
    public function test() {
        parent::test();
    }
}
Nach dem Login kopieren

MyClass 中,我们继承了 OtherClass,并重写了 test 方法,但是我们还想使用 OtherClass 中的 test 方法,可以使用 parent::test() 来调用。

  1. 合作关系

如果当前类与被导入类不是父子关系,而是合作关系,我们可以通过实例化被导入类的对象来调用该类的方法。例如:

import('app\MyClass\OtherClass');

class MyClass {
    private $other;
    public function __construct() {
        $this->other = new OtherClass();
    }
    public function test() {
        $this->other->test();
    }
}
Nach dem Login kopieren
Nach dem Login kopieren

在这个例子中,MyClassOtherClass 之间并没有继承关系,我们通过实例化 $other 对象来调用 OtherClass 中的 test 方法。

总结

以上就是在 ThinkPHP 中调用另一个类的方法的方法。无论是父子关系还是合作关系,我们都可以通过 importrrreee

wobei namespace und class name die Namen der importierten Klassen sind bzw. Leerzeichen und Klassenname. Wenn sich die importierte Klasse in keinem Namespace befindet, übergeben Sie den Klassennamen einfach direkt an die Funktion import. 🎜🎜Zum Beispiel haben wir eine Klasse OtherClass, die eine Methode test enthält. Wenn wir diese Methode nun in der aktuellen Klasse verwenden möchten, können wir so schreiben: 🎜rrreee🎜Das ist es. Die Methode test in OtherClass wird in MyClass verwendet. 🎜🎜2. Instanziieren Sie die Klasse🎜🎜Nach dem Importieren der Klasse müssen wir auch das Schlüsselwort new verwenden, um die Klasse zu instanziieren, um die Methoden und Eigenschaften in der Klasse verwenden zu können. Normalerweise instanziieren wir die importierte Klasse im Konstruktor der aktuellen Klasse. Zum Beispiel: 🎜rrreee🎜Im Konstruktor instanziieren wir OtherClass und weisen es der privaten Eigenschaft $other von MyClass zu. Dann können wir in der Methode test die Methode test im Objekt $other aufrufen. 🎜🎜3. Methoden aufrufen 🎜🎜Nachdem wir die importierte Klasse instanziiert haben, können wir die Methoden in der Klasse verwenden. Bevor wir die Methode aufrufen, müssen wir die Beziehung zwischen der aktuellen Klasse und der importierten Klasse verstehen. 🎜
  1. Vater-Kind-Beziehung
🎜Wenn die aktuelle Klasse eine Unterklasse der importierten Klasse ist, können wir die Methode direkt mit dem Schlüsselwort parent aufrufen der importierten Klasse. Zum Beispiel: 🎜rrreee🎜In MyClass erben wir OtherClass und überschreiben die Methode test, aber wir möchten auch The test in OtherClass kann mit parent::test() aufgerufen werden. 🎜
  1. Kooperationsbeziehung
🎜Wenn die aktuelle Klasse und die importierte Klasse keine Eltern-Kind-Beziehung, sondern eine kooperative Beziehung sind, können wir das Objekt von instanziieren die importierte Klasse. Rufen Sie eine Methode dieser Klasse auf. Zum Beispiel: 🎜rrreee🎜In diesem Beispiel gibt es keine Vererbungsbeziehung zwischen MyClass und OtherClass. Wir rufen es auf, indem wir das $other-Objekt instanziieren Die test-Methode in OtherClass. 🎜🎜Zusammenfassung🎜🎜Oben erfahren Sie, wie Sie die Methode einer anderen Klasse in ThinkPHP aufrufen. Unabhängig davon, ob es sich um eine Eltern-Kind-Beziehung oder eine kooperative Beziehung handelt, können wir die zu verwendende Klasse über die Funktion import importieren und nach der Instanziierung ihre Methoden aufrufen. Für Klassen oder Methoden, die häufig aufgerufen werden müssen, können Konstanten oder Funktionen in der globalen Datei von ThinkPHP definiert werden, um den Aufruf überall im Projekt zu erleichtern. 🎜

Das obige ist der detaillierte Inhalt vonSo rufen Sie eine Methode in einer anderen Klasse in thinkphp auf. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage