PHP 7.2 Menamatkan fungsi create_(): Pandangan Lebih Dekat
Dalam PHP 7.2, penciptaan fungsi secara dinamik melalui create_function( ) fungsi telah ditamatkan. Ini menimbulkan cabaran bagi pembangun yang telah bergantung pada ciri ini dalam aplikasi mereka. Untuk menangani perkara ini, mari kita terokai penyelesaian yang menawarkan alternatif moden dan serasi.
Pertimbangkan coretan kod berikut:
$callbacks[$delimiter] = create_function( '$matches', "return '$delimiter' . strtolower($matches[1]);" );
Di sini, create_function() mencipta secara dinamik fungsi berdasarkan rentetan yang disediakan. Walau bagaimanapun, dalam PHP 7.2 dan kemudian, pendekatan ini tidak lagi disyorkan.
Alternatif: Fungsi Tanpa Nama (Penutupan)
Untuk menulis semula kod untuk keserasian PHP 7.2, anda boleh menggunakan Fungsi Tanpa Nama, juga dikenali sebagai Penutupan. Penutupan ialah fungsi tanpa nama yang boleh ditakrifkan dan digunakan dalam kod anda. Ia membenarkan anda mengakses pembolehubah daripada skop induk, menjadikannya sesuai untuk tugas yang sedang dijalankan.
Kod berikut menunjukkan cara menulis semula coretan asal menggunakan Penutupan:
$callbacks[$delimiter] = function($matches) use ($delimiter) { return $delimiter . strtolower($matches[1]); };
Dalam Penutupan ini:
Oleh menggunakan Fungsi Tanpa Nama, anda boleh menukar kod anda dengan lancar kepada PHP 7.2 dan seterusnya, mengekalkan fungsi yang disediakan oleh create_function() sambil mematuhi piawaian PHP terkini.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggantikan `create_function()` PHP yang Dihentikan dalam PHP 7.2 dan Kemudian?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!