Как производительность затронута неиспользованной директивой использования?

Примечание: использование неопределенной константы XXX - предполагается «XXX»

или, в PHP 7.2 или более поздней версии:

Предупреждение: использование неопределенной константы XXX - предполагается «XXX» (это будет выдает ошибку в будущей версии PHP)

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

Одной из наиболее распространенных причин этого уведомления является неспособность заключить в кавычки строку, используемую в качестве ключа ассоциативного массива.

Например:

// Wrong
echo $array[key];

// Right
echo $array['key'];

Другой распространенной причиной является отсутствие знака $ (доллар) перед именем переменной:

// Wrong
echo varName;

// Right
echo $varName;

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

// Wrong
$foo = fasle;

// Right
$foo = false;

Это также может быть признаком отсутствия необходимого расширения или библиотеки PHP при попытке доступа к константе, определенной этой библиотекой.

Смежные вопросы:

103
задан user2864740 14 July 2015 в 19:05
поделиться

5 ответов

Неиспользованное использование не влияет на производительность вашего приложения во время выполнения.

Это может повлиять на производительность IDE и общую фазу компиляции. Причина в том, что он создает дополнительное пространство имен, в котором должно происходить разрешение имен. Однако они, как правило, незначительны и не должны оказывать заметного влияния на вашу среду IDE для большинства сценариев.

Это также может повлиять на производительность вычисления выражений в отладчике по тем же причинам.

123
ответ дан 24 November 2019 в 04:20
поделиться

Нет, это просто стиль компиляции / кодирования. Бинарные файлы .NET используют полностью определенные имена под капотом.

13
ответ дан 24 November 2019 в 04:20
поделиться

Не влияет на скорость выполнения, но может немного повлиять на скорость компиляции / intellisense, поскольку существует больше потенциальных пространств имен для поиска подходящего класса. Я бы не стал особо беспокоиться об этом, но вы можете использовать пункт меню «Организовать использование», чтобы удалить и отсортировать операторы using.

7
ответ дан 24 November 2019 в 04:20
поделиться

Нет, компиляция программы включает несколько процессов. Когда компилятор начнет искать ссылки (классы, методы), он будет использовать только те, которые используются в коде. Директива using только сообщает компилятору, где искать. Многие неиспользуемые операторы using могут иметь проблемы с производительностью, но только во время компиляции. Во время выполнения весь внешний код правильно связан или включен как часть двоичного файла.

4
ответ дан 24 November 2019 в 04:20
поделиться

Код, который не выполняется, не выполняется влияют на производительность программы.

5
ответ дан 24 November 2019 в 04:20
поделиться