Siapa yang dapat membantah pengalaman, gelar sarjana, dan rekayasa perangkat lunak? Bukan saya. Saya hanya akan mengatakan bahwa dalam mengembangkan aplikasi PHP satu halaman berorientasi objek, saya lebih bersenang-senang ketika saya tahu saya dapat membangun semuanya dari awal tanpa khawatir tentang tabrakan namespace. Membangun dari awal adalah sesuatu yang tidak lagi dilakukan banyak orang. Mereka memiliki pekerjaan, tenggat waktu, bonus, atau reputasi yang harus diperhatikan. Jenis ini cenderung menggunakan begitu banyak kode yang dibuat sebelumnya dengan taruhan tinggi, sehingga mereka tidak dapat mengambil risiko menggunakan variabel global sama sekali.
Menggunakan variabel global mungkin buruk, meskipun hanya digunakan di area global suatu program, tapi jangan lupakan mereka yang hanya ingin bersenang-senang dan membuat sesuatu berfungsi .
Jika itu berarti menggunakan beberapa variabel (<10) di namespace global, yang hanya digunakan di area global program, biarlah. Ya, ya, MVC, injeksi ketergantungan, kode eksternal, bla, bla, bla, bla. Tetapi, jika Anda telah memasukkan 99,99% kode Anda ke dalam namespace dan kelas, dan kode eksternal di-sandbox, dunia tidak akan berakhir (saya ulangi, dunia tidak akan berakhir) jika Anda menggunakan variabel global.
Secara umum, saya tidak akan mengatakan penggunaan variabel global adalah praktik yang buruk . Saya akan mengatakan bahwa menggunakan variabel global (bendera dan semacamnya) di luar area global suatu program akan menimbulkan masalah dan (dalam jangka panjang) tidak disarankan karena Anda dapat kehilangan jejak statusnya dengan mudah. Juga, saya akan mengatakan bahwa semakin banyak Anda belajar, semakin tidak bergantung Anda pada variabel global karena Anda akan mengalami "kegembiraan" melacak bug yang terkait dengan penggunaannya. Ini saja akan mendorong Anda untuk menemukan cara lain untuk menyelesaikan masalah yang sama. Secara kebetulan, ini cenderung mendorong orang-orang PHP ke arah belajar bagaimana menggunakan namespace dan kelas (anggota statis, dll ...).
Bidang ilmu komputer sangat luas. Jika kita menakut-nakuti semua orang agar tidak melakukan sesuatu karena kita menyebutnya buruk , maka mereka kehilangan kesenangan untuk benar-benar memahami alasan di balik label tersebut.
Gunakan variabel global jika Anda harus, tetapi kemudian lihat apakah Anda dapat menyelesaikan masalah tanpa variabel tersebut. Tabrakan, pengujian, dan debugging akan lebih berarti jika Anda benar-benar memahami sifat sebenarnya dari masalah, bukan hanya deskripsi masalah.