Necesito reemplazar la sintaxis de acceso a la propiedad del objeto unidimensional por la sintaxis de acceso al elemento de matriz
Ejemplos:
$variable -> child
$variable->child
ambos deben convertirse a:
$variable['child']
Respuesta1
Encontrar que:
\$([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*) *-> *([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)
Reemplazar con
$\1['\2']
Por supuesto, haga que el modo de búsqueda sea "expresión regular". Aquí, una expresión regular que representavariable PHPes [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*
.
Respuesta2
Encontrar:(\$\w+) *-> *(\w+)
Reemplazar:$1['$2']
(\$\w+)
capturar un signo de dólar literal y luego uno o más caracteres [a-zA-Z0-9_]*-> *
coincidir con cero o más espacios, luego guión, luego mayor que, luego cero o más espacios(\w+)
capturar uno o más caracteres [a-zA-Z0-9_]
Luego use $1
y $2
para generar el reemplazo dinámico deseado con sintaxis de matriz.
Como se comentó en la otra respuesta, no tiene sentido buscar uno o más signos de dólar literales ( \$+
) porque solo debería haber uno. Espero que no estés usando "variables variables" ( $$variable
), pero no lo haría. En este contexto, no importa si lo hiciste.