Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Menghidupkan Kelas PHP Secara Dinamik Menggunakan Rentetan?

Bagaimanakah Saya Boleh Menghidupkan Kelas PHP Secara Dinamik Menggunakan Rentetan?

Linda Hamilton
Lepaskan: 2024-12-04 04:23:09
asal
222 orang telah melayarinya

How Can I Instantiate PHP Classes Dynamically Using Strings?

Penyataan Kelas Dinamik dengan Rentetan dalam PHP

Dalam PHP, adalah mungkin untuk mencipta contoh kelas menggunakan rentetan yang mewakili kelas nama. Ini menghapuskan keperluan untuk pernyataan suis yang panjang apabila berurusan dengan berbilang kelas.

Pertimbangkan contoh berikut:

class ClassOne {}
class ClassTwo {}

$str = 'One';
Salin selepas log masuk

Daripada menggunakan pernyataan suis:

switch ($str) {
    case "One":
        $object = new ClassOne();
        break;
    case "Two":
        $object = new ClassTwo();
        break;
}
Salin selepas log masuk

Anda boleh mencipta tika secara dinamik menggunakan rentetan seperti berikut:

$class = 'Class' . $str;
$object = new $class();
Salin selepas log masuk

Sintaks ini membina nama kelas penuh (cth., "ClassOne") dan menjadikannya instantiate. Jika kelas anda berada dalam ruang nama, gunakan nama yang layak sepenuhnya:

$class = '\Foo\Bar\MyClass';
$instance = new $class();
Salin selepas log masuk

PHP meluaskan keupayaan ini kepada fungsi dan kaedah pembolehubah juga:

$func = 'my_function';
$func(...$parameters); // Calls my_function() with parameters

$method = 'doStuff';
$object = new MyClass();
$object->$method(); // Calls Myclass->doStuff()
(new MyClass())->$method(); // Calls Myclass->doStuff() in one line
Salin selepas log masuk

Sambil anda boleh mencipta pembolehubah dengan rentetan , ia dianggap sebagai amalan buruk dan harus dielakkan memihak kepada penggunaan tatasusunan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghidupkan Kelas PHP Secara Dinamik Menggunakan Rentetan?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan