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

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

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

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();

0

Решение

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

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]