警告:使用未定义的常量-请将PHP项目升级到8.2

xu3bshqb  于 2023-02-03  发布在  PHP
关注(0)|答案(1)|浏览(123)

我有一个旧的大项目,其中许多数组的定义没有引号。
一个例子是:

$a=$row["string1"];
$b=$row['string2'];
$c=$row[string3];
echo "Bye bye";
$var="I am $row['string4']!";
$var="I am $row[string5]!";
$row[string6];
$row[string7
];
$arr[]="I am $row[string8]!";
$arr[]=["message", "I am $row[string8]"];
if (true) {
  echo "Hello [how are you]".
}
$myarr[string9]="bye";

我需要一个正则表达式,它匹配没有引号的数组,以便在preg_replace()函数中包含引号。
我尝试使用这个正则表达式/(?<=\[)([^'"].*[^'"])(?=\])/g,但它不只是选择数组。
如果我使用/(?<=\$row\[)([^'"].*[^'"])(?=\])/g,它可以正常工作,但是如果数组不命名为$row,它就不能工作
在我的示例中,只有字符串3、字符串5、字符串6、字符串7和字符串8在作用域中,并且$row[string3]将为$row["string3"]
提前感谢!!

xwbd5t1u

xwbd5t1u1#

UPDATE:我找到了这个正则表达式

/(?<arr>\$\w+\[)(\s)(?<var>[^"']+?)(\s)\]/g

您可以使用phpstorm进行替换,替换模式如下

${arr}"${var}"]

示例:
https://i.stack.imgur.com/AYRjK.png

相关问题