CakeFest 2024: The Official CakePHP Conference

spl_autoload_extensions

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

spl_autoload_extensionsRegistriert und gibt die voreingestellten Dateiendungen für spl_autoload zurück

Beschreibung

spl_autoload_extensions(?string $file_extensions = null): string

Diese Funktion kann die Dateiendungen, die in der __autoload() Fallback-Funktion spl_autoload() verwendet werden, prüfen und ändern.

Hinweis: Es sollte sich kein Leerzeichen zwischen den definierten Dateierweiterung befinden.

Parameter-Liste

file_extensions

Wenn null, werden alle aktuellen Endungen durch Kommas getrennt zurückgegeben. Um die Liste mit den Dateiendungen zu modifizieren, einfach die Funktion noch einmal aufrufen mit einer neuen Liste von Dateiendungen, die durch Kommas getrennt in einer einzigen Zeichenkette übergeben werden.

Rückgabewerte

Eine durch Kommata getrennte Liste mit den Voreingestellten Dateiendungen für spl_autoload().

Changelog

Version Beschreibung
8.0.0 file_extensions ist jetzt nullbar.

Beispiele

Beispiel #1 spl_autoload_extensions() Beispiel

<?php
spl_autoload_extensions
(".php,.inc");
?>
add a note

User Contributed Notes 2 notes

up
7
dantedantas at gmail dot com
6 years ago
The order of the extensions influence the velocity of the reply. For example:

spl_autoload_extensions(".php, .inc");

is more fast than:

spl_autoload_extensions(".inc, .php");

Check out this example:

Some class files:

ClassA.php
<?php class ClassA { var $val = 'Hello from class "ClassA"'; } ?>
ClassB.php
<?php class ClassB { var $val = 'Hello from class "ClassB"'; } ?>
ClassC.php
<?php class ClassC { var $val = 'Hello from class "ClassC"'; } ?>
ClassD.php
<?php class ClassD { var $val = 'Hello from class "ClassD"'; } ?>
ClassE.php
<?php class ClassE { var $val = 'Hello from class "ClassE"'; } ?>

1. Simple:
<?php
// default priority: .inc .php
for($n=65; $n<70; $n++) {
$className = 'Class'.chr($n);
spl_autoload($className);
$ins = new $className;
echo
$ins->val.'<br>';
}
// 4.2 miliseconds
?>

2. Change priority:
<?php
spl_autoload_extensions
('.php,.inc');
// new priority: .php .inc
for($n=65; $n<70; $n++) {
$className = 'Class'.chr($n);
spl_autoload($className);
$ins = new $className;
echo
$ins->val.'<br>';
}
// 1.4 miliseconds
?>
up
4
pim dot stoit at gmail dot com
7 years ago
Extensions doesn't have to start with a dot, spl_autload() will simply append whatever you supply to the basename. The following example will try to load "test.php" first, and "test/index.php" as well:

spl_autoload_register('.php,/index.php');
spl_autoload('Test');
To Top