[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Автозагрузка классов
l@pteff
Здравствуйте, ООП начал изучать недавно, и не до конца ясен принцип работы __autoload(). Например: есть такие классы
employee.php

class employee {
public function hello1() {
return 'Hello, world1';
}
}



employee2.php

class employee2 {
public function hello2() {
return 'Hello, world2';
}
}



employee3.php

class employee3 {
public function hello3() {
return 'Hello, world3';
}
}



Файл, в котором подключаем классы:
main.php

function __autoload($employee) {
require_once 'classes/employee.php';
require_once 'classes/employee2.php';
require_once 'classes/employee3.php';
}

$emp=new employee();
$emp2=new employee2();
$emp3=new employee3();

echo $emp2->hello2();

Так всё работает и выводит верно: "Hello, world2", но не могу понять как изменить код, чтобы класс 'employee2' загружался автоматически? заранее благодарю



Спустя 11 минут, 32 секунды (24.08.2011 - 20:54) neadekvat написал(а):
function __autoload($employee) {
require_once 'classes/'. $employee .'.php';
}

Спустя 24 минуты, 14 секунд (24.08.2011 - 21:18) l@pteff написал(а):
neadekvat, спасибо все работает, но остается вопрос: а в чем смысл параметра функции __autoload(), ведь имя класса, указываемое в нем, должно совпадать с именем класса в include(require)?

Спустя 14 минут, 13 секунд (24.08.2011 - 21:32) neadekvat написал(а):
l@pteff, не понял вопроса.
Аргумент нужен, чтобы ты мог им оперировать. Код __autoload не всегда заключается только в include, там может быть бесконечно много разнообразных условий, проверок и пр.

Спустя 18 минут, 32 секунды (24.08.2011 - 21:51) l@pteff написал(а):
Цитата

Код __autoload не всегда заключается только в include, там может быть бесконечно много разнообразных условий, проверок и пр.

Всё ясно, спс
Быстрый ответ:

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