Zgaduję, że nie trzeba dodawać wielu, ale jest to zgodne z Twoją logiką. sposób, w jaki działa spl_autoload_register, jest niesamowity. suppone ma się 3-cie stron i to jest zwykle zarządzane przez przestrzeń nazw, która również reprezentuje ich ścieżkę. rozważyć ten prosty klasy jako klasy automatycznego ładowania
klasy MyAutoLoader {
public function __construct()
{
spl_autoload_register(array($this, 'load'));
}
function load($class)
{
$filepath = 'classes/'.$class.'.php';
require_once($filepath);
}
}
następnie w pliku indeksu zawierać plik ładującego i utworzyć egzemplarz tej klasy
$autoload = new MyAutoLoader();
teraz możesz bezpośrednio tworzyć ins z pytaniem klas załóżmy, że mamy klasę 'osoba' w katalogu 'klas \ SZJ \ Services \ Person.php', a sama ścieżka jest nazw tej klasy
$ osoba = new SZJ \ Services \ Person() ;
teraz, gdy użyjesz nowego, sprawdzisz, czy ta klasa istnieje, a wartość jako ciąg będzie przekazywana do funkcji 'load' klasy 'MyAutoLoader'. i tam to zostanie włączone. lub możesz zmienić funkcję "ładuj", aby naprawić ścieżkę plików klas ur umieszczonych w ur, jeśli warunki lub cokolwiek trzeba zrobić, aby naprawić ścieżki.
ale mając wiele spl_autoload_register jest wolniejszy niż po prostu używać? –
@GinoSullivan Być może, ale nie będę używał tego jako pretekstu do napisania kodu używającego '__autoload()'. – alex
dzięki za informacje –