Может ли оператор пространства имен быть «включенным»? в PHP?

У меня есть файл, который выглядит так:

<?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?

Или это просто невозможно?

0

Решение

Вы должны указать пространство имен при вызове функции, которая находится в пространстве имен, например так:

// test.php
namespace test;
function doesItWork() {
return 'It Works!';
}
// index.php
include 'test.php';
echo test\doesItWork();

Если вы хотите использовать функцию, которая определена в пространстве имен, которое находится за пределами текущего пространства имен, то вы должны поставить перед ним префикс символа пространства имен, например, так:

echo \test\doesItWork();

Вы должны прочитать документация по пространствам имен.

2

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

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

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