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';
Daripada menggunakan pernyataan suis:
switch ($str) { case "One": $object = new ClassOne(); break; case "Two": $object = new ClassTwo(); break; }
Anda boleh mencipta tika secara dinamik menggunakan rentetan seperti berikut:
$class = 'Class' . $str; $object = new $class();
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();
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
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!