PHP 7.2.0 Beta 3 Released

spl_autoload_extensions

(PHP 5 >= 5.1.2, PHP 7)

spl_autoload_extensionsRegistrar y devolver las extensiones de ficheros predeterminadas para spl_autoload

Descripción

string spl_autoload_extensions ([ string $file_extensions ] )

Esta función puede modificar y verificar las extensiones de ficheros que estará usando spl_autoload() en respaldo de la función interna __autoload().

Parámetros

file_extensions

Cuando se llama sin ningún argumento, simplemente devuelve la lista actual de extensiones separadas por comas. Para modificar la lista de extensiones de fichero, llame a las funciones con la nueva lista de extensiones de fichero a usar en una simple cadena con cada extensión serparada por una coma.

Valores devueltos

Una lista delimitada por comas de las extensiones predeterminadas de ficheros de para spl_autoload().

add a note add a note

User Contributed Notes 4 notes

up
24
Jeremy Cook
6 years ago
A quick note for anyone using this function to add their own autoload extensions. I found that if I included a space in between the different extensions (i.e. '.php, .class.php') the function would not work. To get it to work I had to remove the spaces between the extensions (ie. '.php,.class.php'). This was tested in PHP 5.3.3 on Windows and I'm using spl_autoload_register() without adding any custom autoload functions.

Hope that helps somebody.
up
5
Kerry Kobashi
7 years ago
Extensions include the period. For example:

spl_autoload_extensions(".inc,.php,.lib,.lib.php");
up
1
pim dot stoit at gmail dot com
1 year 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');
up
1
dantedantas at gmail dot com
1 month 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
?>
To Top