Altere a sintaxe da variável PHP de objeto para array no Notepad++ com pesquisa/substituição

Altere a sintaxe da variável PHP de objeto para array no Notepad++ com pesquisa/substituição

Preciso substituir a sintaxe de acesso à propriedade do objeto unidimensional pela sintaxe de acesso ao elemento da matriz

Exemplos:

  • $variable -> child
  • $variable->child

ambos devem ser convertidos para:

$variable['child']

Responder1

Encontre o que:

\$([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*) *-> *([a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)

Substituir com

$\1['\2']

Faça o modo de pesquisa como "expressão regular", é claro. Aqui, uma regex representandoVariável PHPé [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*.

Responder2

Encontrar:(\$\w+) *-> *(\w+)

Substituir:$1['$2']

  • (\$\w+)capture um cifrão literal e depois um ou mais caracteres [a-zA-Z0-9_]
  • *-> * corresponde a zero ou mais espaços, depois hífen, depois maior que, depois zero ou mais espaços
  • (\w+) capturar um ou mais caracteres [a-zA-Z0-9_]

Em seguida, use $1e $2para gerar a substituição dinâmica desejada com sintaxe de array.

Conforme comentado na outra resposta, não faz sentido procurar um ou mais cifrões literais ( \$+) porque deveria haver apenas um - espero que você não esteja usando "variáveis ​​variáveis" ( $$variable), mas seria ' Não importa neste contexto se você fez isso.

informação relacionada