PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
mstan
Отправлено: 13 Июля, 2017 - 12:44:41
Post Id


Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Июнь 2015  


Помог: 0 раз(а)




Разбираюсь с аутолоадом и пространствами имен.
Есть два файла:
index.php
./classes/live/Human.php

index.php
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. function Myautoloader($class)
  3. {
  4.     $class = str_replace('\\', '/', $class).'.php';
  5.     if(file_exists($class)){
  6.         echo 'file found';
  7.         require_once $class;
  8.     }
  9. }
  10. spl_autoload_register('Myautoloader');
  11.  
  12. use classes\live\Human;
  13.  
  14. $human = new Human();
  15.  
  16.  


Human.php
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. namespace classes\live\Human;
  3.  
  4. class Human
  5. {
  6.     public function __construct()
  7.     {
  8.         echo "Class human created";
  9.     }
  10.  
  11. }


Вывод в браузере
Цитата:
file found
Fatal error: Uncaught Error: Class 'classes\live\Human' not found in D:\xampp7.1\htdocs\php_ess\index.php:14 Stack trace: #0 {main} thrown in D:\xampp7.1\htdocs\php_ess\index.php on line 14


Как я понимаю, пространство имен срабатывает, файл находится, но почему же он не инклюдится?



UPD Решено, namespace classes\live;

(Отредактировано автором: 13 Июля, 2017 - 13:06:01)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB