Penciptaan Instance Dinamik dalam PHP menggunakan String
Dalam PHP, terdapat situasi di mana anda mungkin perlu mencipta contoh kelas menggunakan rentetan, bukannya menggunakan pernyataan suis panjang untuk memilih antara berbilang kelas. Sebagai contoh, katakan kita mempunyai dua kelas berikut:
class ClassOne {} class ClassTwo {}
Dan kami menerima rentetan yang boleh sama ada "Satu" atau "Dua". Daripada menggunakan pernyataan suis seperti:
switch ($str) { case "One": return new ClassOne(); case "Two": return new ClassTwo(); }
Kita boleh mencipta contoh secara dinamik menggunakan kod berikut:
$str = 'One'; $class = 'Class'.$str; $object = new $class();
Pembolehubah $class dibina secara dinamik dengan menggabungkan rentetan 'Class ' dengan nilai $str. Kemudian, kami menggunakan operator baharu untuk mencipta tika kelas itu. Teknik ini membolehkan kami mencipta contoh kelas berdasarkan input rentetan secara dinamik.
Pendekatan yang sama boleh digunakan dengan ruang nama dengan menyediakan nama kelas yang layak sepenuhnya:
$class = '\Foo\Bar\MyClass'; $instance = new $class();
Selain itu, PHP menyokong memanggil fungsi pembolehubah dan kaedah secara dinamik menggunakan sintaks berikut:
$func = 'my_function'; $parameters = ['param2', 'param2']; $func(...$parameters); // calls my_function() with 2 parameters; $method = 'doStuff'; $object = new MyClass(); $object->$method(); // calls the MyClass->doStuff() method. // or in one call (new MyClass())->$method();
Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa mencipta pembolehubah secara dinamik secara amnya merupakan amalan yang tidak baik dan harus dielakkan apabila boleh. Tatasusunan ialah alternatif yang lebih baik dalam kebanyakan kes.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membuat Instance Kelas Secara Dinamik dalam PHP Menggunakan Rentetan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!