Rumah  >  Artikel  >  rangka kerja php  >  Bagaimana untuk memanggil kaedah dalam kelas lain dalam thinkphp

Bagaimana untuk memanggil kaedah dalam kelas lain dalam thinkphp

PHPz
PHPzasal
2023-04-17 09:49:111261semak imbas

ThinkPHP ialah rangka kerja pembangunan PHP yang sangat baik dan disukai secara meluas oleh pembangun. Semasa proses pembangunan, kita sering menulis banyak kelas Kadangkala kita perlu menggunakan kaedah atau atribut kelas lain dalam kelas semasa, jadi apa yang perlu kita lakukan? Artikel ini akan memperkenalkan cara memanggil kaedah kelas lain dalam ThinkPHP.

1. Import kelas

Untuk menggunakan kaedah kelas lain, langkah pertama sudah tentu untuk memperkenalkan kelas ke dalam kelas semasa. Dalam ThinkPHP, kita boleh menggunakan fungsi import untuk mencapai:

import('命名空间.类名');

di mana, 命名空间 dan 类名 ialah ruang nama dan nama kelas bagi kelas yang diimport masing-masing. Jika kelas yang diimport tiada dalam mana-mana ruang nama, hanya hantar nama kelas terus ke fungsi import.

Sebagai contoh, kita mempunyai kelas OtherClass, yang mengandungi kaedah test Sekarang jika kita mahu menggunakan kaedah ini dalam kelas semasa, kita boleh menulis seperti ini:

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

Itu sahaja Kaedah MyClass dalam OtherClass digunakan dalam test.

2. Instantiate kelas

Selepas mengimport kelas, kita juga perlu menggunakan kata kunci new untuk membuat instantiate kelas untuk menggunakan kaedah dan atribut dalam kelas. Biasanya, kami membuat instance kelas yang diimport dalam pembina kelas semasa. Contohnya:

import('app\MyClass\OtherClass');

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

Dalam pembina, kami membuat instantiate OtherClass dan menetapkannya kepada harta persendirian MyClass daripada $other. Kemudian dalam kaedah test, kita boleh memanggil kaedah $other dalam objek test.

3. Kaedah panggilan

Selepas membuat seketika kelas yang diimport, kita boleh menggunakan kaedah dalam kelas. Sebelum memanggil kaedah, kita perlu memahami hubungan antara kelas semasa dan kelas yang diimport.

  1. Hubungan bapa-anak

Jika kelas semasa ialah subkelas kelas yang diimport, kita boleh terus menggunakan kata kunci parent untuk memanggil kaedah yang diimport kelas. Contohnya:

import('app\MyClass\OtherClass');

class MyClass extends OtherClass {
    public function test() {
        parent::test();
    }
}

Dalam MyClass, kami mewarisi OtherClass dan mengatasi kaedah test, tetapi kami juga mahu menggunakan kaedah OtherClass dalam test, anda boleh menggunakan parent::test() untuk menelefon.

  1. Hubungan kerjasama

Jika kelas semasa dan kelas yang diimport bukanlah hubungan ibu bapa-anak, tetapi hubungan kerjasama, kita boleh memanggil kelas dengan membuat seketika objek kaedah kelas yang diimport. Contohnya:

import('app\MyClass\OtherClass');

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

Dalam contoh ini, tiada hubungan warisan antara MyClass dan OtherClass Kami memanggil kaedah $other dalam OtherClass dengan membuat seketika objek test.

Ringkasan

Di atas ialah cara memanggil kaedah kelas lain dalam ThinkPHP. Sama ada hubungan ibu bapa-anak atau hubungan kerjasama, kita boleh mengimport kelas untuk digunakan melalui fungsi import dan kemudian memanggil kaedahnya selepas instantiasi. Untuk kelas atau kaedah yang perlu dipanggil dengan kerap, pemalar atau fungsi boleh ditakrifkan dalam fail global ThinkPHP untuk memudahkan panggilan mereka ke mana-mana dalam projek.

Atas ialah kandungan terperinci Bagaimana untuk memanggil kaedah dalam kelas lain dalam thinkphp. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn