es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Puedo ocultar la advertencia de PHP: “Clave de matriz no definida” sin suprimir todas las demás advertencias?

Entonces, parece que han cambiado la forma en que se accede a una matriz con una clave desconocida que genera un mensaje.

<?php
if($myArray['foo']) { ... }

Durante 25 años, esto simplemente generaba una NOTA (NOTICE) y la gente estaba bastante contenta de silenciar E_NOTICE en php.ini. Con (creo que) PhP 8.0 ahora esto genera una ADVERTENCIA (WARNING).

Por razones obvias, no quiero silenciar E_WARNING, así que yo (y el resto del mundo que durante años utilizó variables/matrizes/claves no inicializadas con el valor null, como en muchos otros lenguajes interpretados) estaba buscando una posible forma de deshacerme de las advertenicas relacionadas con variables/matrizes/claves indefinidas, mientras se mantienen reportados todos los demás errores de programación (más graves), como incluir un archivo que no existe.

La razón detrás de esta pregunta es que tengo que lidiar con toneladas de código escrito con el patrón anterior en mente; simplemente no puedo reescribirlo todo, pero aún así necesito cambiar a PhP 8, así que no, no estoy preguntando cómo usar isset().

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    El autor está señalando un cambio en PHP 8.0 con respecto al acceso a matrices con claves desconocidas. Anteriormente, esto generaba un AVISO (NOTICE), pero ahora genera una ADVERTENCIA (WARNING). El autor está preocupado por silenciar las E_WARNING y está buscando una forma de deshacerse de las advertencias relacionadas con variables/matrices/claves indefinidas, pero aún así informando otros errores de programación graves. Señala que no pueden reescribir todo el código para usar isset().

Comments are closed.