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

Bagaimana untuk memanggil kaedah dalam kelas lain dalam thinkphp

PHPz
Lepaskan: 2023-04-17 10:13:31
asal
1360 orang telah melayarinya

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('命名空间.类名');
Salin selepas log masuk

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();
    }
}
Salin selepas log masuk
.

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();
    }
}
Salin selepas log masuk
Salin selepas log masuk

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();
    }
}
Salin selepas log masuk

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();
    }
}
Salin selepas log masuk
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan