MB: Autoloader Klasse verstehen können?

Beitrag lesen

moin community,

mich macht dieses Klassenkonstrukt stutzig.

class Autoloader {
  
  private function __construct() {
    spl_autoload_register( [ $this, 'load' ] );
  }
  
  public function register() : void {
    new Autoloader;
  }
  
  private function load( string $name ) : void {
    /* Code */
  }
}

Autoloader::register();

was mir klar ist:

  1. Die Klasse Autoloader wird mit öffentlicher Methode register() aufgerufen.
  2. Die Methode register() instanziiert ihre eigene Klasse Autoloader-Klasse (zu vergleichen mit Singleton nehme ich an)

Zur Frage:

  1. spl_autoload_register() benötigt ja callable Funktions-Objkte. Was hat ein numerisches Array mit Funktionsobjekten zutun und warum Funktioniert das [ $this, 'load' ]?
  2. Warum muss eine anonyme Instanz erzeugt werden damit Autoload funktioniert, warum reicht die Klassenmethode register() als aufruf nicht?

Ich habe die Sinnhaftigkeit von diesen Konstrukten nicht ganz verstanden :/.

vlg MB