¿Qué tan seguro es usar el operador .= en una variable no inicializada?

2 minutos de lectura

Estoy usando algunos complementos premium y, analizando su código, encontré que en algunas funciones usan código como:

$output .= $some_str;

cuando esa salida de $ no se mencionó en ninguna parte antes.

¿Qué tan seguro es este código? Traté de encontrar alguna guía en el Manual de PHP para esto, pero por lo que veo, solo lo definen para $output y $some_str que se establecieron previamente.

Más tarde, esta variable de salida de $ se usa para hacer eco del código HTML.

¿Viste alguna especificación al respecto? ¿Tal vez hay algo que podría hacer fuera de esos complementos para hacer que este código sea más seguro? ¿Algún valor predeterminado definido para todas las variables no inicializadas?

¡Gracias!

  • ¿Cuál es tu definición de “seguro”? Aparte del valor NULL implícito y el aviso/advertencia (o la entrada de registro del mismo), los lenguajes de secuencias de comandos no son propensos a, por ejemplo, errores de puntero nulo. esta cubierto de php.net/manual/en/language.variables.basics.php#example-112 por cierto.

    – mario

    29/04/2016 a las 19:29


  • @mario, quise decir, por ejemplo, si este código HTML que la variable produciría más tarde, contendría algo que no se haya puesto allí intencionalmente.

    – Olga Farber

    29/04/2016 a las 19:40

  • Los casos de los que debe tener cuidado no son aquellos con no inicializado variables entonces. Esos no harán ningún daño. Para complementos o temas, es posible reutilizarlos accidentalmente heredado variables, por ejemplo, desde un ámbito de variable compartida (global). Lo que podría causar una salida no deseada, etc.

    – mario

    29/04/2016 a las 19:54


  • gracias, @mario!

    – Olga Farber

    1 mayo 2016 a las 20:14

Es una mala práctica, por lo que PHP emitirá un E_NOTICE (si habilita el informe de errores).

Dicho esto, las variables de PHP siempre se inicializan automáticamente, por lo que no tendrá ningún efecto negativo.

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad