2014-11-25 2 views
-2

Я не использую до сих пор использовать PHP слово, но теперь должны ... :)PHP классы импорта с ключевыми словами используйте

index.php содержание:

require_once 'Classes/MainClass.php'; 
$obj = new Main(); 
echo $obj->test(); 

Классы/MainClass .php

<?php 

use AdminFrontEnd; 

class Main { 


    function test(){ 

     return new AdminFrontEnd("debug"); 

    } 

} 

AdminFrontEndClass.php содержание:

<?php 

class AdminFrontEnd { 

    function __constuctor($test){ 

     echo $test; 

    } 
} 

и окончательным, после ошибки:

Fatal error: Class 'AdminFrontEnd' not found in Classes/MainClass.php on line 10

Спасибо за помощь!

+3

'use' только для наложения спектров пространств имен. Он не * загружает * файл с кодом. Вам все равно нужно сделать это, используя 'require' или автозагрузку. – deceze

ответ

1

В соответствии с комментарием от @deceze вам нужно будет явно импортировать дополнительный класс, используя инструкцию require или autoload.

Оператор использования предназначен для сглаживания класса, и, как сказал @deceze, можно использовать для вытягивания класса из другого пространства имен или во избежание конфликта классов.

Наличие класса под названием «Главная» может быть не идеальным. Это синглтон, или будет несколько «Майн»?
Возможно, этот класс будет лучше назван «App».

В более долгосрочной перспективе вы захотите узнать об использовании пространств имен, чтобы, если вы используете классы и плагины других людей, у вас не будет конфликта. Я добавил решение, а также более подробную информацию ниже.

Чтобы получить Вас с крючка:

Классы/MainClass.php

<?php 

require_once 'Classes/AdminFrontEnd.php'; 

class Main { /* etc... */ 


Дальнейшее чтение я бы рекомендовал:

Примеры создания автозагрузкой:

http://php.net/manual/en/language.oop5.autoload.php

Вы, вероятно, хотите узнать о пространствах имен тоже:

http://php.net/manual/en/language.namespaces.php

Я также настоятельно рекомендую прочитать о совместимости стандартов кодирования. Прежде всего, это нужно для начала, но это поможет вам понять логику использования пространств имен и автозагрузчиков.

http://www.php-fig.org/

 Смежные вопросы

  • Нет связанных вопросов^_^