Quem pode argumentar contra a experiência, diplomas universitários e engenharia de software? Eu não. Eu apenas diria que, ao desenvolver aplicativos PHP de página única orientados a objetos, me divirto mais quando sei que posso construir tudo do zero sem me preocupar com colisões de namespace. Construir do zero é algo que muitas pessoas não fazem mais. Eles têm um trabalho, um prazo, um bônus ou uma reputação com que se preocupar. Esses tipos tendem a usar tanto código pré-construído com grandes riscos que não podem arriscar usar variáveis globais.
Pode ser ruim usar variáveis globais, mesmo que sejam usadas apenas na área global de um programa, mas não esqueçamos daqueles que querem apenas se divertir e fazer algo funcionar .
Se isso significa usar algumas variáveis (<10) no namespace global, que só são usadas na área global de um programa, que seja. Sim, sim, MVC, injeção de dependência, código externo, blá, blá, blá, blá. Mas, se você contiver 99,99% do seu código em namespaces e classes, e o código externo estiver em sandbox, o mundo não vai acabar (repito, o mundo não vai acabar) se você usar uma variável global.
Geralmente, eu não diria que usar variáveis globais é uma prática ruim . Eu diria que usar variáveis globais (sinalizadores e outras) fora da área global de um programa é pedir problemas e (no longo prazo) é desaconselhável porque você pode perder o controle de seus estados com bastante facilidade. Além disso, eu diria que quanto mais você aprende, menos dependente se torna das variáveis globais, pois terá experimentado a "alegria" de rastrear bugs associados ao seu uso. Isso por si só o incentivará a encontrar outra maneira de resolver o mesmo problema. Coincidentemente, isso tende a empurrar as pessoas do PHP na direção de aprender como usar namespaces e classes (membros estáticos, etc ...).
O campo da ciência da computação é vasto. Se assustarmos todo mundo porque o rotulamos de ruim , eles perderão a diversão de entender verdadeiramente o raciocínio por trás do rótulo.
Use variáveis globais se necessário, mas veja se consegue resolver o problema sem elas. Colisões, testes e depuração significam mais quando você entende intimamente a verdadeira natureza do problema, não apenas uma descrição do problema.