Я знаю, что это старый вопрос, и хотя принятый ответ отвечает на вопрос в том виде, в котором он был задан, мне кажется, что ОП действительно спрашивает: «Могу ли я использовать элементы в глобальном пространстве имен из другого пространства имен. Ответ здесь»это ясное и простое да.
Представьте себе два класса (один в глобальном пространстве имен, другой в своем собственном:
ClassInGlobal.php
<?php
class ClassInGlobal
{
public static function doStuff()
{
echo 'I do some stuff';
}
}
ClassInNamespace.php
<?php
namespace App\Classes;
class ClassInNamespace
{
public function callDoStuff()
{
\ClassInGlobal::doStuff();
}
}
Все вышеперечисленное выполняется нормально. Все, что требуется, - это косая черта, указывающая полностью определенное глобальное пространство имен. Кроме того, вы можете добавить объявление use ClassInGlobal
сразу после объявления пространства имен и опустить косую черту.
Это может привести к исходному вопросу, если абстрагировать функции пространства имен в класс. Затем вы можете немного изменить код OP, чтобы добиться этого:
require './Namespace/Utilities.php';
Blabla global namespace
strlen('test'); // 4
\Namespace\Utilities::test();
More global PHP
Надеюсь, что это поможет кому-то прийти сюда в поискахчто.