Этот вопрос возник из моего предыдущего вопроса Почему при динамической оценке элементов пространства имен необходимо использовать полностью определенные имена? и другой вопрос Использовать php пространство имен внутри функции . Оба эти вопроса сводятся к следующему объяснению php. net:
Импорт выполняется во время компиляции и поэтому не влияет на класс, функцию или константу динамического c names .... .... Ключевое слово use должно быть объявлено в самой внешней области файла (глобальной области) или внутри объявлений пространства имен. Это связано с тем, что импорт выполняется во время компиляции, а не во время выполнения
Я всего лишь бывший разработчик с ограниченными знаниями в области компьютерных наук. У меня поверхностное понимание первого факта, что во время выполнения у машинного кода нет пространства имен исходного файла, поэтому динамическое разрешение переменной приводит к глобальной области видимости, но я не уверен, как этот факт применим к компиляции время выполнения, в результате чего use
импорт доступен только в глобальной области видимости.
Пожалуйста, дайте исчерпывающее объяснение того, как выполнение времени компиляции влияет на функционирование import/use
.