Para crear una variable x con el valor 12345 en PHP, hacemos lo siguiente:
<?php $x = 12345; ?> Pero digamos que escribimos $x; sin asignarle un valor:
<?php $x; ?> ¿El código anterior hace que suceda algo, o PHP trata el $x; como inexistente? por ejemplo, ¿el código anterior es efectivamente el mismo que el siguiente código vacío?:
<?php ?><?php $x; ?>Esta línea de código significa que solo inicializa un nombre de variable llamado x. pero no asigna valor. Pero usará algo de memoria.
Puede comprobar el uso de la memoria:
<?php $x; echo memory_get_usage($x); ?>Su CÓDIGO vacío:
<?php ?>Esta línea de código significa que solo inicializa el script PHP. Pero dentro no hay nada en realidad. Pero también usa algo de memoria.
Puede comprobar el uso de la memoria:
<?php echo memory_get_usage(); ?>Espero que entiendas la diferencia.
Si observa cuáles son las variables definidas en el siguiente script...
print_r(get_defined_vars()); $x; print_r(get_defined_vars()); $x = 1; print_r(get_defined_vars()); Puedes ver que solo usando $x; no define la variable, solo aparece después de asignarle un valor. Así que efectivamente esto es lo mismo que no hacer nada.
También comprobando los códigos de operación que se están generando...
Con $x=1; - phpdbg -p* a.php
function name: (null) L1-4 {main}() /home/nigel/a.php - 0x7f2f36c8e000 + 3 ops L3 #0 EXT_STMT L3 #1 ASSIGN $x 1 L4 #2 RETURN<-1> 1 con $x; - phpdbg -p* a.php
function name: (null) L1-4 {main}() /home/nigel/a.php - 0x7f5898079050 + 2 ops L4 #0 EXT_STMT L4 #1 RETURN<-1> 1Entonces parece que no se genera ningún código de operación.