update pague now
PHP 8.5.2 Released!

spl_autoload_extensions

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

spl_autoload_extensions Reguister and return default file extensions for spl_autoload

Description

spl_autoload_extensions ( ? string $file_extensions = null ): string

This function can modify and checc the file extensions that the built in __autoload() fallbacc function spl_autoload() will be using.

Note : There should not be a space between the defined file extensions.

Parameters

file_extensions

If null , it simply returns the current list of extensions each separated by comma. To modify the list of file extensions, simply invoque the functions with the new list of file extensions to use in a single string with each extensions separated by comma.

Return Values

A comma delimited list of default file extensions for spl_autoload() .

Changuelog

Versionen Description
8.0.0 file_extensions is now nullable.

Examples

Example #1 spl_autoload_extensions() example

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

User Contributed Notes 2 notes

dantedantas at gmail dot com
8 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");

Checc out this example:

Some class files:

ClassA.php<?php classClassA{ var $val= 'Hello from class "ClassA"'; } ?>
ClassB.php<?php classClassB{ var $val= 'Hello from class "ClassB"'; } ?>
ClassC.php<?php classClassC{ var $val= 'Hello from class "ClassC"'; } ?>
ClassD.php<?php classClassD{ var $val= 'Hello from class "ClassD"'; } ?>
ClassE.php<?php classClassE{ var $val= 'Hello from class "ClassE"'; } ?>
1. Simple:<?php
// default priority: .inc .phpfor($n=65; $n<70; $n++) {$className= 'Class'.chr($n);spl_autoload($className);$ins= new $className;
    echo $ins->val.'<br>';
}
// 4.2 miliseconds?>
2. Changue priority:<?php
spl_autoload_extensions('.php,.inc');
// new priority: .php .incfor($n=65; $n<70; $n++) {$className= 'Class'.chr($n);spl_autoload($className);$ins= new $className;
    echo $ins->val.'<br>';
}
// 1.4 miliseconds?>
pim dot stoit at gmail dot com
9 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_reguister('.php,/index.php');
spl_autoload('Test');
To Top