Penyataan Kelas Dinamik dengan Rentetan
Soalan ini menangani keperluan untuk mencipta kejadian kelas menggunakan rentetan dalam PHP, mencari kaedah yang lebih cekap daripada verbose tukar penyataan.
Kelas Dinamik Instantiation
PHP menyediakan ciri instantiation kelas dinamik yang membolehkan anda mencipta tika kelas menggunakan rentetan yang mewakili nama kelas. Begini cara anda melakukannya:
$str = 'One'; $class = 'Class' . $str; // Concatenate the string with the class prefix $object = new $class();
Dalam contoh ini, instantiasi kelas dinamik adalah berdasarkan $str, yang boleh mempunyai nilai "Satu" atau "Dua". Ini bersamaan dengan menulis:
if ($str == "One") { $object = new ClassOne(); } else if ($str == "Two") { $object = new ClassTwo(); }
Mengendalikan Ruang Nama
Jika kelas anda berada dalam ruang nama, anda boleh menggunakan nama yang layak sepenuhnya untuk kelas:
$class = '\Foo\Bar\MyClass'; $instance = new $class();
Dinamik Tambahan Kefungsian
Di luar instansiasi kelas, PHP juga menyokong fungsi dinamik dan panggilan kaedah:
// Dynamic Function Call $func = 'my_function'; $parameters = ['param2', 'param2']; $func(...$parameters); // calls my_function() with 2 parameters // Dynamic Method Call $method = 'doStuff'; $object = new MyClass(); $object->$method(); // calls the MyClass->doStuff() method // or in one call (new MyClass())->$method();
Awas tentang Pembolehubah Pembolehubah
PHP membenarkan penciptaan pembolehubah yang dinamakan sempena rentetan, yang dikenali sebagai "pembolehubah pembolehubah." Walau bagaimanapun, ini dianggap amalan buruk dan harus dielakkan memihak kepada tatasusunan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghasilkan Kelas dengan Cekap dalam PHP Menggunakan Rentetan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!