///
Muitos desenvolvedores, ao desenvolver aplicações orientadas a objeto, criam um arquivo PHP para cada definição de classe. Um dos maiores contratempos é ter de escrever uma longa lista de includes no início de cada script (um para cada classe). No PHP 5, isso não é mais necessário. A função spl_autoload_register() registra qualquer número de autoloaders, permitindo que classes e interfaces sejam automaticamente carregadas se elas não ainda não foram definidas. Ao registrar autoloaders, o PHP tem uma última chance de carregar classes e interfaces antes que falhem com um erro. Analise as seguintes informações que abordam sobre o tema, e assinale a alternativa correta.
I- Embora a função __autoload() também possa ser utilizada para carregar automaticamente classes e interfaces, é preferível a utilização da função spl_autoload_register(), porque é uma alternativa mais flexível, permitindo que vários autoloaders sejam especificados na aplicação, assim como bibliotecas de terceiros.
II- Antes do PHP 5.3.0, exceções disparadas na função __autoload() não eram capturadas no bloco catch e resultavam em um erro fatal. Do PHP 5.3.0 em diante, isso é possível, sendo que, se uma exceção customizada é disparada, então a classe da exceção customizada se tornará disponível. A função __autoload() deve ser usada recursivamente para carregar a classe de exceção customizada.
III- Se o nome da classe é usado, por exemplo, em call_user_func(), então ela pode conter alguns caracteres perigosos como ./. É recomendado não usar entrada de usuário nestas funções ou, pelo menos, verificar a entrada em __autoload().