Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.03.2013, 17:02
Аспирант
Отправить личное сообщение для super-php Посмотреть профиль Найти все сообщения от super-php
 
Регистрация: 08.03.2013
Сообщений: 38

__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
Fatal error: Class 'A' not found in D:\server\super-php\test.ru\www\index.php on line 6
Ответить с цитированием
  #2 (permalink)  
Старый 20.03.2013, 17:47
Аспирант
Отправить личное сообщение для super-php Посмотреть профиль Найти все сообщения от super-php
 
Регистрация: 08.03.2013
Сообщений: 38

Эх, упустил, нужен require_once
Ответить с цитированием
  #3 (permalink)  
Старый 20.03.2013, 23:05
Аспирант
Отправить личное сообщение для super-php Посмотреть профиль Найти все сообщения от super-php
 
Регистрация: 08.03.2013
Сообщений: 38

А в чем разница от того кода, если писать так? Вот глянул в документации, только работает также, что просто __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();
?>
Ответить с цитированием
  #4 (permalink)  
Старый 21.03.2013, 18:21
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

spl_autoload_register позволяет зарегистрировать несколько автолоадеров. актуально когда подключаешь несколько библиотек и у каждой свой метод загрузки
__________________
.ня
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск