Es básicamente un patrón de diseño Singleton que usa una función en lugar de un método estático.
Para profundizar, consulte el código fuente
Entonces, básicamente, no aplica el singleton, pero es un atajo a una función pública ...
Editar: De hecho, ahora lo entiendo. Para la compatibilidad con PHP4, tuvieron que hacer un truco doble de variable global para que devolviera las referencias correctamente. De lo contrario, las referencias se estropearían. Y dado que PHP4 no tenía soporte para métodos estáticos (bueno, correctamente de todos modos), usar la función era la mejor manera. Entonces todavía existe por razones heredadas ...
Entonces, si su aplicación es solo PHP5, no debería haber nada malo en hacer en su CI_Base::get_instance();
lugar, es idéntica ...
=&
en ninguna parte de su proyecto.