Usando matrices claves sin comillas, ¿cómo solucionarlo en un gran proyecto?

Comencé un proyecto usando muchas teclas de arreglos sin comillas.

Y ahora que tengo problemas con este método, no sabía que era malo cuando comencé mi proyecto. Finalmente quise mostrar los errores de E_NOTICES por razones, pero se bloquea porque el registro está sobrecargado con millones de avisos como PHP Notice: Use of undefined constant message - assumed 'key' .

Entonces, para solucionarlo, podría agregar presupuestos a mis claves en todo mi proyecto, ¡pero hay tanto! ¿Hay alguna manera de lograr esto con un algoritmo o algo para arreglar mi código? Quiero reemplazar cualquier constante indefinida por una cadena con comillas, por ejemplo: $my_array[key] por $my_array['key'] .

Gracias.

EDITAR: Logré corregir todas las declaraciones usando rejex, así:

\[([^0-9\$\'\"\]])([^\'\"\]]*)\] a \[\'\1\2\'\]

Pero no es suficiente, hay muchas situaciones en las que las claves sin comillas se usan sin corchetes, por ejemplo:

array_key_exists(unquotedKey,$array)

$array['key'] = array( unquotedKey => array(96,56) );

etc …

Podría arreglar todas las situaciones usando expresiones regulares pero supongo que tendré muchos problemas para manejarlo bien, y algunas veces las claves de mis matrices son realmente constantes y ¡no deberían citarse! Si alguien tiene una mejor solución me ayudaría mucho.

La solución perfecta sería poder obtener mi código después de que PHP reemplazara constantes indefinidas por cadenas entrecomilladas , ¿es posible? Lo hace cada vez que compilo, quizás se almacena en algún lugar temporalmente.

    Uso Notepad ++ que tiene una función de búsqueda y reemplazo en archivos (Ctrl + Shift + F). Con el modo de expresión regular activado, puedes usar

    Buscar:

     \$my_array\[([^\'\"]+)\] 

    Reemplazar

     \$my_array\[\'$1\'\] 

    La búsqueda busca cualquier cosa dentro de los corchetes de la clave de matriz donde aún no hay un carácter o , lo que indicaría que la statement ya es válida.

    Seleccione el directorio de su proyecto y luego presione “Reemplazar en archivos”. Asegúrese de que su proyecto completo esté respaldado primero en caso de que algo salga mal.