__autoload()
Хочу загрузить автоматически 2 класса, используя функцию автолоад, не грузятся чего-то.
Все 3 файла: index.php, A.php, B.php находятся в одной папке www Вот файл index.php <?php function __autoload($name_class){ echo $name_class.'.php'; } $obj = new A(); $obj = new B(); ?> Файл A.php <?php class A{ public function hi(){ echo 'Hello file 1.php'; } } ?> Файл B.php <?php class B{ public function hi(){ echo 'Hello file 2.php'; } } ?> Ошибка: Код:
A.php |
Эх, упустил, нужен require_once
|
А в чем разница от того кода, если писать так? Вот глянул в документации, только работает также, что просто __autoload что spl_autoload_register, а разница в чем такого хода?
<?php // function __autoload($class) { // include 'classes/' . $class . '.class.php'; // } function my_autoloader($class) { include 'classes/' . $class . '.class.php'; } spl_autoload_register('my_autoloader'); // начиная с версии PHP 5.3.0 можно использовать безымянные функции spl_autoload_register(function ($class) { include 'classes/' . $class . '.class.php'; }); $obj1 = new A(); $obj1->hi(); $obj2 = new B(); $obj2->hi(); ?> |
spl_autoload_register позволяет зарегистрировать несколько автолоадеров. актуально когда подключаешь несколько библиотек и у каждой свой метод загрузки
|
Часовой пояс GMT +3, время: 04:31. |