PHP не может создать экземпляр класса с пространством имен

0

У меня есть следующая проблема:

Это мой супер базовый класс:

class A
{
    function foo()
    {
        echo "bar";
    }
}

Теперь перед объявлением класса я использую следующий код:

$a = new A();
$a->foo();

Когда я открываю php файл в браузере, вывод "bar". Отлично!

Теперь я хочу сделать то же самое в другом файле.

в первую очередь я объявляю следующее пространство имен:

namespace model\dbAction;

Это путь, где находится мой файл с указанным выше классом.

Поэтому в другом php файле я делаю следующее:

$a = new \model\dbAction\A();
$a->foo();

Но я не получаю никакого вывода и другого кода, после этого не будет запускаться, поэтому похоже, что он ломается сразу после инстанцирования класса.

Любые идеи, почему создание класса в другом файле не работает?

Благодарю!

Полный первый PHP файл:

<?php
namespace model\dbAction;
class A
{
    function foo()
    {
        echo "bar";
    }
}

Полный код второго файла (который я вызываю в браузере):

$a = new \model\dbAction\A();
$a->foo();
  • 1
    У вас есть пространство имен A; выше этого класса?
  • 0
    включить display_erros и error_level E_ALL
Показать ещё 5 комментариев
Теги:
namespaces
instance

1 ответ

1
Лучший ответ

Вам все равно нужно include файл - при условии, что само пространство имен не будет содержать файл для вас... если вы не используете автозагрузчик. См.: Как использовать пространства имен PHP с автозагрузкой?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню