Могу ли я использовать функцию __autoload
на классе, которая после включения файла (класса)?Могу ли я использовать __autoload в классе?
Я пробовал это только за пределами класса. Итак, я петлю массив с именами классов и пытаюсь их включить.
Могу ли я использовать функцию __autoload
на классе, которая после включения файла (класса)?Могу ли я использовать __autoload в классе?
Я пробовал это только за пределами класса. Итак, я петлю массив с именами классов и пытаюсь их включить.
В то время как функция __autoload() также может использоваться для автозагрузки классов и интерфейсов, ее предпочтительнее использовать функцию spl_autoload_register(). Это связано с тем, что это более гибкая альтернатива (позволяющая указать любое количество автозагрузчиков в приложении, например, в сторонних библиотеках). По этой причине использование __autoload() не рекомендуется и может быть устаревшим в будущем.
Автозагрузка не доступно при использовании PHP в интерактивном режиме CLI.
Говоря выше вы можете сделать это, как показано ниже:
<?php
spl_autoload_register(function ($class_name) {
include $class_name . '.php';
});
// example
$pet = new Dog(); // this class will be auto loaded from file Dog.php.
Так, но если этот класс имеет имя файла: dog.php или Dog.php? – Huligan
от Dog.php, как лучшая практика, старайтесь сохранить имя файла таким же, как имя класса. –
Да, я знаю, но если в любом случае, когда я не знаю имя файла? Предположим, что у него есть D или d. Таким образом, включает ли автозагрузка? – Huligan