Originariamente inviato da whisher
Scusa un attimo ma perchè utilizzi static nella funzione ?
perche' evito di creare ed assegnare ogni volta 3 variabili che avranno sempre lo stesso valore

Originariamente inviato da whisher
e il return true o false ha senso solamente se utilizzi
spl_autoload_register (cioè perde la sua efficacia se rinomini
la funzione __autoload) sbaglio ?
non sbagli ... quella funzione l'ho scritta al volo mentre rispondevo al primo post ed include entrambi i casi ... ma diciamo che puoi riadattarla meglio cosi'

codice:
// __autoload
function __autoload($className){
	static	$classDir	= 'classes/',
		$classPrefix	= '',
		$classSuffix	= '.class.php';
	$classFile		= $classDir.$classPrefix.$className.$classSuffix;
	if(file_exists($classFile))
		require	$classFile;
	else {
		trigger_error("Unable to load class {$className}. File {$classFile} does not exist.", E_USER_ERROR);
	}
}



// autoloader con spl
function yourPrefixAutoloader($className){
	static	$classDir	= 'classes/',
		$classPrefix	= '',
		$classSuffix	= '.class.php';
	$classFile		= $classDir.$classPrefix.$className.$classSuffix;
	$result			= file_exists($classFile);
	if($result)
		require	$classFile;
	return	$result;
}

spl_autoload_register('yourPrefixAutoloader');
nel secondo caso sara' di fatto la spl a preoccuparsi dell'eccezione. nel primo la generi tu.

Per concludere, la spl permette di gestire i files per cartelle, ergo l'organizzazione dei files puo' essere migliore.

codice:
function yourBasePrefixAutoloader($className){
	static	$classDir	= 'classes/',
		$classPrefix	= '',
		$classSuffix	= '.class.php';
	$classFile		= $classDir.$classPrefix.$className.$classSuffix;
	$result			= file_exists($classFile);
	if($result)
		require	$classFile;
	return	$result;
}

spl_autoload_register('yourBasePrefixAutoloader');

function yourDeepPrefixAutoloader($className){
	static	$classDir	= 'classes/components/',
		$classPrefix	= '',
		$classSuffix	= '.class.php';
	$classFile		= $classDir.$classPrefix.$className.$classSuffix;
	$result			= file_exists($classFile);
	if($result)
		require	$classFile;
	return	$result;
}

spl_autoload_register('yourDeepPrefixAutoloader');
... ma bisogna stare attenti a gerarchie e nomi classi ... se due classi hanno lo stesso nome si rischia solo di far casini ...