Я знаю, что это действительно старый, но есть место для улучшения.
Вам следует рассмотреть возможность использования $ GLOBALS ['category'] вместо просто global.
Для этого есть две причины:
- Нам не нужно писать
global $categories;
каждый раз.
- Это кристально ясно, тогда мы используем глобальный, а затем нет.
Рассмотрим этот код:
global $categories;
// a lot of PHP code here
<?php print_r ($categories) ?>
Только если мы инициализируем глобальное состояние прямо перед использованием переменной, довольно сложно сказать, глобально это или нет. И не забудьте повторить это в любом из ваших шаблонных файлов.
Для этого можно использовать соглашения об именах, но, на мой взгляд, есть лучший способ.
Подумайте об использовании $GLOBALS['categories']
.
Нам нужно только один раз инициализировать нашу переменную в functions.php, не думая global $categories
снова. И мы видим, что это глобальный.
print_r ($GLOBALS['categories']);
Проблема производительности не является проблемой вообще в этой ситуации. Я процитирую Сару Големон ( ссылка ):
Что это значит для вашего использования массива $ GLOBALS? Это верно, глобальное ключевое слово технически быстрее. Теперь я хочу быть действительно ясным об одной вещи здесь. Незначительную скорость, предоставляемую использованием глобальных переменных в качестве локализованных [скомпилированных переменных], необходимо серьезно сопоставить с возможностью сопровождения просмотра вашего кода через пять лет и знания того, что $ foo происходит из глобальной области видимости. something_using ($ GLOBALS [ 'Foo']); ВСЕГДА будет яснее для вас, чем глобальный $ foo; / * код bunda * / что-то_using ($ foo); Не будь мудрым и глупым.