[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: __autoload
super-php
Хочу загрузить автоматически 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
Fatal error: Class 'A' not found in D:\server\super-php\test.ru\www\index.php on line 6
kaww
интересно как echo подключит файл
function __autoload($name_class){
require $name_class.'.php';
}

ну и конечно для этой реализации автолоадера файл с классом должен лежать в одной дирректории с index.php и иметь имя class_name.php
super-php
Эх, упустил, нужен require_once
super-php
А в чем разница от того кода, если писать так? Вот глянул в документации, только работает также, что просто __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();
?>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.