Συνάρτηση spl_autoload_register

Η συνάρτηση spl_autoload_register καταχωρεί μια δεδομένη συνάρτηση ως υλοποίηση της μεθόδου αυτόματης φόρτωσης κλάσεων. Όταν η PHP συναντήσει μια μη ορισμένη κλάση, καλεί διαδοχικά όλες τις καταχωρημένες συναρτήσεις αυτόματης φόρτωσης, περνώντας τους το όνομα της κλάσης. Η πρώτη παράμετρος είναι η callback-συνάρτηση για την αυτόματη φόρτωση, η δεύτερη παράμετρος (προαιρετική) είναι αν να εκτινάξει εξαίρεση σε περίπτωση σφάλματος, η τρίτη παράμετρος (προαιρετική) είναι αν να προσθέσει τη συνάρτηση στην αρχή της ουράς.

Σύνταξη

phpspl_autoload_register(callable $autoload_function [, bool $throw = true [, bool $prepend = false ]]);

Παράδειγμα

Απλή καταχώρηση συνάρτησης αυτόματης φόρτωσης:

php<?php
  function my_autoloader($class) {
    include 'classes/' . $class . '.php';
  }
  
  spl_autoload_register('my_autoloader');
  
  // Τώρα μπορούμε να δημιουργήσουμε αντικείμενα χωρίς ρητό include
  $obj = new MyClass();
?>

Παράδειγμα

Χρήση ανώνυμης συνάρτησης για αυτόματη φόρτωση:

php<?php
  spl_autoload_register(function ($class) {
    include 'lib/' . str_replace('\\', '/', $class) . '.php';
  });
  
  $obj = new Some\Namespace\MyClass();
?>

Παράδειγμα

Καταχώρηση πολλαπλών συναρτήσεων αυτόματης φόρτωσης:

php<?php
  spl_autoload_register('autoloader1');
  spl_autoload_register('autoloader2');
  spl_autoload_register('autoloader3', true, true); // Προσθέτουμε στην αρχή της ουράς
  
  // Η PHP θα καλεί τις συναρτήσεις με τη σειρά: autoloader3, autoloader1, autoloader2
  $obj = new MyClass();
?>

Δείτε επίσης

  • τη συνάρτηση spl_autoload_functions,
    που επιστρέφει τους αυτόματους φτωτές
  • τη συνάρτηση spl_autoload_unregister,
    που αφαιρεί έναν αυτόματο φτωτή
  • τη συνάρτηση class_exists,
    που ελέγχει μια κλάση