У меня есть файл, который выглядит так:
<?php
namespace n;
f(); // this calls n\f()
Операторы PHP могут быть включены с помощью include
функция, однако, это не работает для namespace
заявление:
<?php
include('example_include_namespace_statement.php')
f(); // this doesn't call n\f()
example_include_namespace_statement.php:
<?php
namespace n;
Есть ли способ «включить» оператор пространства имен в PHP?
Или это просто невозможно?
Вы должны указать пространство имен при вызове функции, которая находится в пространстве имен, например так:
// test.php
namespace test;
function doesItWork() {
return 'It Works!';
}
// index.php
include 'test.php';
echo test\doesItWork();
Если вы хотите использовать функцию, которая определена в пространстве имен, которое находится за пределами текущего пространства имен, то вы должны поставить перед ним префикс символа пространства имен, например, так:
echo \test\doesItWork();
Вы должны прочитать документация по пространствам имен.
Других решений пока нет …