spl_autoload_extensions

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

spl_autoload_extensions Регистрирует и выводит расширения файлов для функций spl_autoload

Описание

spl_autoload_extensions(?string $file_extensions = null): string

Функция задаёт расширения файлов, в которых callback-функция __autoload() будет искать классы и интерфейсы. Функция spl_autoload() будет вызывать функцию очереди __autoload и передавать очереди эти расширения. Эта функция также умеет выводить уже зарегистрированные расширения файлов.

Замечание: Между заданными расширениями файлов не должно быть пробелов.

Список параметров

file_extensions

Функция просто выведет через запятую список зарегистрированных на данный момент расширений, если значение параметра равно null. Чтобы изменить этот список, вызывают функцию и передают функции строку с расширениями, которые также перечисляют через запятую.

Возвращаемые значения

Функция возвращает список перечисленных через запятую расширений файлов для функции spl_autoload().

Список изменений

Версия Описание
8.0.0 Параметр file_extensions теперь принимает значение null.

Примеры

Пример #1 Пример использования функции spl_autoload_extensions()

<?php

spl_autoload_extensions
(".php,.inc");

?>
Добавить

Примечания пользователей 2 notes

up
6
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");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 .phpfor($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:<?phpspl_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?>
up
3
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_register('.php,/index.php');spl_autoload('Test');
To Top