如何使用正则表达式在PHP代码中捕获未引用的数组索引并对其进行引用?

PHP 7.2将未定义的常量错误从通知升级为警告,并建议将来它们将返回完整错误。


我试图找到一种通过脚本修复这些问题的方法,理想情况下是通过一个正则表达式,我可以运行该正则表达式来解析站点上的每个PHP文件,查找所有令人讨厌的代码并进行修复。


我找到了多个示例来解决一个变种,但没有一个解决另一个变种,这就是我正在寻求帮助的一个例子。


这是一个示例文件:


<?php


$array[foo] = "bar"; 

// this should become 

// $array['foo'] = "bar"


echo "hello, my name is $array[foo] and it's nice to meet you"; 

// would need to become 

// echo "hello, my name is " . $array['foo'] . " and it's nice to meet you";


?>

我已经看到了很多用于标识和更改第一种类型的选项,但是对于第二种类型则没有,其中未定义的常量位于字符串中。在那种情况下,解析器将需要:


替换$array[foo]为$array['foo']

找到整个变量,事先用引号引起来,然后放一个。两侧,然后重新打开报价

编辑:理想情况下,一个正则表达式将一次性处理示例代码中的两个示例-即添加刻度线,并且如果它标识在字符串内,则还添加引号/点。


函数式编程
浏览 122回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP