¿Cuál es la diferencia entre global y $ GLOBAL en PHP?

Gracias por el A2A.

Según los ejemplos que proporcionó en los detalles de su pregunta, permítame preguntar. ¿Cuál crees que es más fácil de escribir y cuál parece más legible?

Hay casos de uso válidos para cada uno. Por ejemplo, si desea determinar si se ha definido una variable en el ámbito global, puede verificar fácilmente la matriz $ GLOBAL usando isset () o array_key_exists () . Usando global como en su primer ejemplo, no siempre sabe si la variable se ha establecido / definido previamente, especialmente en proyectos grandes y complejos. En esos casos, es probable que no desee utilizar globals de todos modos ya que esto podría provocar efectos secundarios inesperados. Esto es especialmente cierto si no tiene una manera de realizar un seguimiento de los globales, que suele ser el caso con el tiempo.

Use globals con moderación. Puede que sea mejor usar define () para definir constantes, si eso es lo que intenta lograr, o aprender sobre OOP para aplicaciones / proyectos más complejos.

Recuerde, aunque generalmente hay más de una forma de desollar a un gato, siempre hay una mejor manera de hacerlo hasta que aparezca un método mejor. 😉

“global” permite el acceso a la variable definida fuera de una función.

$ GLOBAL es una variable súper global, en la misma familia que $ _SERVER, $ _POST, $ _GET: estas variables siempre son accesibles, independientemente del alcance de la variable. Son accesibles a través de diferentes archivos, funciones, objetos y clases y no hay necesidad de configurarlos para que funcionen.

Estoy seguro de que comprende el concepto general de alcance de la programación wrt.

Esencialmente, ambos sirven para el mismo propósito, siendo la única sintaxis y semántica diferentes.

La declaración de marcas globales variables está disponible en cualquier lugar de la aplicación. Del mismo modo, $ GLOBALS es una matriz (variable súper global) proporcionada por PHP a la que se puede acceder desde cualquier punto del programa.

Dan el mismo resultado: 15.

¿Qué obtuviste / esperabas?

¿Se pregunta por qué hay dos formas de hacer lo mismo? Tienen diferentes usos. Por ejemplo, puede usar $ GLOBALS para enumerar todas las variables globales con fines de depuración, etc.