У меня есть следующая проблема:
Это мой супер базовый класс:
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 с автозагрузкой?