Eu sei que este é realmente velho, mas há um espaço para melhorias.
Você deve considerar usar $ GLOBALS ['categorias'] em vez de apenas global.
Há duas razões para isso:
- Não precisamos escrever
global $categories;
sempre.
- É claro que estamos usando global e depois não.
Considere este código:
global $categories;
// a lot of PHP code here
<?php print_r ($categories) ?>
Somente se inicializarmos o estado global antes de usar a variável, é muito difícil saber se é global ou não. E não se esqueça de repeti-lo em qualquer um dos arquivos de modelo que você possui.
É possível usar convenções de nomenclatura para isso, mas há uma maneira melhor, na minha opinião.
Considere usar $GLOBALS['categories']
.
Só precisamos inicializar nossa variável uma vez em functions.php sem precisar pensar global $categories
novamente. E podemos ver que é global.
print_r ($GLOBALS['categories']);
Problema de desempenho não é um problema nesta situação. Vou citar Sara Golemon ( link ):
O que isso significa para o uso da matriz $ GLOBALS? É isso mesmo, a palavra-chave global é tecnicamente mais rápida. Agora, quero ser muito claro sobre uma coisa aqui. A menor disponibilidade de velocidade oferecida pelo uso de seus globais como variáveis [compiladas localizadas] precisa ser seriamente ponderada em relação à capacidade de manutenção de analisar seu código em cinco anos e saber que $ foo veio do escopo global. algo_utilizando ($ GLOBALS ['foo']); SEMPRE será mais claro para você abaixo da linha do que $ foo global; / * código buncha * / something_using ($ foo); Não seja um tostão nem um tolo.