Ini pada dasarnya adalah Pola Desain Singleton yang menggunakan fungsi alih-alih metode statis.
Untuk melihat lebih dalam, lihat kode sumbernya
Jadi pada dasarnya, itu tidak memberlakukan singleton, tapi itu jalan pintas ke fungsi publik ...
Edit: Sebenarnya, sekarang saya mengerti. Untuk kompatibilitas PHP4, mereka harus melakukan double-global-variable-hack agar dapat mengembalikan referensi dengan benar. Jika tidak, referensi akan kacau balau. Dan karena PHP4 tidak memiliki dukungan untuk metode statis (yah, bagaimanapun juga), menggunakan fungsi adalah cara yang lebih baik. Jadi itu masih ada karena alasan warisan ...
Jadi, jika aplikasi Anda hanya PHP5, seharusnya tidak ada yang salah dengan melakukannya CI_Base::get_instance();
, itu identik ...
=&
di mana pun dalam proyek Anda.