Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Suntikan Ketergantungan Boleh Menyelesaikan Masalah yang Disebabkan oleh Pembolehubah Global dalam PHP?
Pembolehubah global boleh membawa kepada gandingan yang berlebihan dalam pangkalan kod. Pergantungan pada kebergantungan tersirat menjadikannya mencabar untuk menguji, menggunakan semula dan mengekalkan kod. Menyuntik kebergantungan secara eksplisit sebagai parameter menyelesaikan isu ini dengan mentakrifkan dengan jelas data yang diperlukan oleh setiap fungsi atau kelas.
Andaikan anda mempunyai fail config.php yang anda sertakan dalam setiap halaman PHP. Fail ini mengandungi tatasusunan dengan pelbagai tetapan konfigurasi. Anda kemudian mempunyai fail function.php yang anda sertakan dalam banyak halaman dan menggunakan pembolehubah global untuk mengakses konfigurasi.
Menggunakan pembolehubah global seperti $config dalam senario ini mewujudkan gandingan yang ketat antara kod dan tatasusunan konfigurasi . Sebarang perubahan pada nama pembolehubah atau struktur tatasusunan memerlukan pengubahsuaian yang meluas di seluruh pangkalan kod.
Untuk menyelesaikan isu ini, pertimbangkan untuk menghantar tatasusunan konfigurasi sebagai hujah kepada fungsi . Contohnya:
function conversion($Exec, $Param = array(), $Log = '') { // Injected configuration array $config = $configArray; $cmd = $config['phppath'] . ' ' . $config['base_path'] . '/' . $Exec; foreach ($Param as $s) { $cmd .= ' ' . $s; } }
Dengan menghantar konfigurasi sebagai hujah, anda menjadikan fungsi bebas daripada pembolehubah global $config. Kini lebih mudah untuk menguji, menggunakan semula dan menggantikan konfigurasi yang berbeza.
Jika anda perlu mengakses pembolehubah tambahan daripada konfigurasi, pertimbangkan untuk menghantarnya sebagai argumen berasingan. Sebagai contoh, anda boleh menghantar $db, $language dan pembolehubah lain yang diperlukan sebagai parameter. Ini akan menghalang kebergantungan global dan memberikan lebih fleksibiliti dalam kod anda.
Selain kebolehujian dan kebolehgunaan semula yang dipertingkatkan, suntikan ketergantungan juga meningkatkan penyahgandingan kod anda. Setiap fungsi atau kelas menjadi lebih serba lengkap, hanya bergantung pada data yang diterima sebagai input. Ini menjadikannya lebih mudah untuk mengekalkan dan mengubah suai kod, mengurangkan risiko ralat atau konflik yang tidak dijangka.
Walaupun pembolehubah global mungkin kelihatan mudah dalam senario tertentu, ia boleh menimbulkan banyak masalah dalam yang lebih besar, pangkalan kod yang kompleks. Menggunakan teknik suntikan kebergantungan, di mana kebergantungan dihantar secara eksplisit sebagai parameter kepada fungsi dan kelas, menghasilkan pangkalan kod yang lebih boleh diselenggara, boleh diperluas dan kurang ralat.
Atas ialah kandungan terperinci Bagaimanakah Suntikan Ketergantungan Boleh Menyelesaikan Masalah yang Disebabkan oleh Pembolehubah Global dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!