Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung des automatischen Ladens von PHP-Beispielen für PHP-Dateien

Detaillierte Erläuterung des automatischen Ladens von PHP-Beispielen für PHP-Dateien

jacklove
jackloveOriginal
2018-06-28 17:28:081521Durchsuche

In diesem Artikel werden hauptsächlich die relevanten Wissenspunkte und die detaillierte Verwendung des automatischen Ladens von PHP-Dateien vorgestellt. Freunde, die dies benötigen, können darauf zurückgreifen.

Traditionell müssen wir in PHP, wenn wir eine Klassendatei verwenden möchten, diese am Kopf des Dokuments anfordern oder einfügen:

<?php
require_once(&#39;../includes/functions.php&#39;);
require_once(&#39;../includes/database.php&#39;);
require_once(&#39;../includes/user.php&#39;);
...

Aber wenn zu viele Dokumente aufgerufen werden müssen, muss man jedes Mal eine Zeile schreiben, was nicht gut aussieht. Gibt es eine Möglichkeit, PHP-Dokumente automatisch laden zu lassen?

<?php
function __autoload($class_name)
{
  require "./{$class_name}.php";
}

Ja, Sie können die magische Funktion __autoload() von PHP verwenden. Das obige Beispiel dient zum automatischen Laden der PHP-Datei im aktuellen Verzeichnis. In der Praxis verwenden wir es natürlich eher so:

<?php
function __autoload($class_name)
{
  $name = strtolower($class_name);
  $path = "../includes/{$name}.php";
  
  if(file_exists($path)){
     require_once($path);
    }else{
      die("the file {$class_name} could not be found");
    }
}

, das heißt, wir führen eine bestimmte Fallverarbeitung des Dateinamens durch. Überprüfen Sie es dann, bevor Sie require Ob die Datei vorhanden ist. Wenn nicht, werden benutzerdefinierte Informationen angezeigt.

Eine ähnliche Verwendung findet man häufig in privaten Projekten oder im Rahmen eines einzelnen Projekts. Da Sie bei der Mehrpersonenentwicklung nur eine __autoload-Funktion definieren können, ist es für verschiedene Entwickler unmöglich, unterschiedliche benutzerdefinierte Autoloader zu verwenden, es sei denn, jeder hat im Voraus zugestimmt, einen __autoload zu verwenden, und die damit verbundene Versionssynchronisierung ist problematisch.

Vor allem aus diesem Grund ist die gute Nachricht, dass die __autoload-Funktion in Version 7.2 von PHP bald veraltet sein wird.

Warnung: Diese Funktion ist seit PHP 7.2.0 veraltet. Es wird dringend davon abgeraten, sich auf diese Funktion zu verlassen.
Dann wird sie durch etwas namens spl_autoload_register() ersetzt, das den Vorteil hat, dass es anpassbar ist. Mehrere Autoloader 🎜>

//使用匿名函数来autoload
spl_autoload_register(function($class_name){
  require_once(&#39;...&#39;);
});

Es ist erwähnenswert, dass die Verwendung von Autoload, egal ob __autoload() oder spl_autoload_register(), im Vergleich zu require oder include darin besteht, dass der Autoload-Mechanismus ein verzögertes Laden ist Es ist nicht so, dass alle diese Dateien für Sie aufgerufen werden, sobald Sie es ausführen, sondern nur diejenigen, die Sie verwenden, z. B. welche Dateien neu sind, und die entsprechenden Dateien werden über den Autoload-Mechanismus geladen.

Natürlich wird spl_autoload_register oft in Laravel verwendet, einschließlich verschiedener Pakete, wie zum Beispiel hier:

//使用一个全局函数
function Custom()
{
  require_once(&#39;...&#39;);
}

spl_autoload_register(&#39;Custom&#39;);

Verwandte Empfehlungen:

Detaillierte Erläuterung der PHP-Kenntnisse bei der Verwendung von mb_strpos in PHP

Detaillierte Erläuterung der Methode zur Verwendung der zlib-Erweiterung zur Erzielung einer GZIP-Komprimierungsausgabe in PHP

Detaillierte Erklärung, wie PHP verteilten Memcache implementiert, um die Web-Cluster-Sitzungssynchronisierung einzurichten


Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des automatischen Ladens von PHP-Beispielen für PHP-Dateien. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn