У меня есть следующая проблема:
Это мой супер базовый класс:
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();
Вам все еще нужно include
файл — предоставление самого пространства имен не будет включать файл для вас … если вы не используете автозагрузчик. Увидеть: Как использовать пространства имен PHP с автозагрузкой?
Других решений пока нет …