Вы не зашли.
#1.
Morgan
Off
(10)
Участник
2010.11.05 20:08
Код:
span style="color: #0000BB"><?php function __autoload($class_name) { // подгружаем класс if(!class_exists($class_name)) { if(file_exists(MF_DIR_CLASSES.$class_name.'.php')) { require_once MF_DIR_CLASSES.$class_name.'.php'; } else { trigger_error('Файл "'.MF_DIR_CLASSES.$class_name.'.php" не существует', E_USER_ERROR); } } return true; }?> |
почему то вызывается __autoload после проверки, существует ли класс в другом месте
Код:
if(!class_exists($class)) |
{ |
... |
} |
Натан ротшильд :
Кто владеет информацией, тот владеет миром
если мы попали в автолоад, то класс уже не найден
#3.
Morgan
Off
(10)
Участник
2010.11.05 21:09
нет.
В совершенно другом месте, распологается код, проверяющий, определен ли класс "$class".
и после этого, каким то образом в ход вступает __autoload
Натан ротшильд :
Кто владеет информацией, тот владеет миром
#4.
Nu3oN
Off
(11)
Moderator
2010.11.05 21:09
на сколько я знаю автозагрузка подключает единожды, а потом уже выдает статический результат
Я буду лучше голоден, но между креслом и рулем и на дороге.
#5.
Nu3oN
Off
(11)
Moderator
2010.11.05 21:09
только что проверил, и действительно файл подключается только единожды!
Добавлено спустя 7 минут 37 секунд: index.php
Код:
span style="color: #0000BB"><?php$i = 1;function __autoload($c){ GLOBAL $i; ++$i; include_once('classes/'$c.'.php');}$a = new MyClass;echo $a -> hello.':'.$i.'<br>';$b = new MyClass;echo $b -> hello.':'.$i;?> |
MyClass.php
Код:
span style="color: #0000BB"><?phpClass MyClass { var $hello = 'hello world';}?> |
Я буду лучше голоден, но между креслом и рулем и на дороге.
так да, единожды, естессно. другое дело, что на class_exists автолоадер вроде как не должен срабатывать...
#7.
Morgan
Off
(10)
Участник
2010.11.05 22:10
Код:
span style="color: #0000BB"><?phpfunction __autoload($class){echo $class;}class_exists('some');?> |
=>
Оо
Натан ротшильд :
Кто владеет информацией, тот владеет миром
#8.
Nu3oN
Off
(11)
Moderator
2010.11.05 22:10
получается class_exists идентичен __autoload только разница в том что автолоад пользовательская функция? 0_о
З.ы или как то так
Добавлено спустя 2 минуты 46 секунд: короче я понял что я ничего не понял гг
Я буду лучше голоден, но между креслом и рулем и на дороге.
хе-хе)) точно) достаточно было просто заглянуть в мануал)))
Страниц: 1