Подтвердить что ты не робот

Использовать пространство имен php внутри функции

Я получаю ошибку синтаксического анализа при попытке использовать пространство имен внутри моей собственной функции

require('/var/load.php');

function go(){

  use test\Class;

    $go = 'ok';
    return $go;
}

    echo go();
4b9b3361

Ответ 1

От Правила определения области импорта

Ключевое слово use должно быть объявлено в самой внешней области файла ( глобальная область) или внутри декларации пространства имен. Это связано с тем, что импорт выполняется во время компиляции, а не во время выполнения, поэтому он не может быть блочный охват

Итак, вы должны так поступить, использование должно указываться на глобальном уровне

require('/var/load.php');
use test\Class;

function go(){
    $go = 'ok';
    return $go;
}
echo go();

Проверьте пример 5 в приведенном ниже руководстве Пожалуйста, обратитесь к его руководству в http://php.net/manual/en/language.namespaces.importing.php

Ответ 2

Из руководство:

Ключевое слово use должно быть объявлено в самой внешней области файла (глобальной области) или внутри декларации пространства имен.