不带引号的php数组()键

不带引号的php数组()键,php,arrays,key,quotes,Php,Arrays,Key,Quotes,我有一个项目,其中有许多不带引号的array()键 $ary = array( name => "Smith" ); 有没有办法用引号转换它的键 $ary = array( 'name' => "Smith" ); 我知道这样的代码 $ary[name] = "Smith" ; // can change to $ary['name'] using editor with regexp 但是如果用这种方式编码,问题就来了 $ary = array( name => "Sm

我有一个项目,其中有许多不带引号的array()键

$ary = array( name => "Smith" );
有没有办法用引号转换它的键

$ary = array( 'name' => "Smith" );
我知道这样的代码

$ary[name] = "Smith" ; // can change to $ary['name'] using editor with regexp
但是如果用这种方式编码,问题就来了

$ary = array( name => "Smith" );

// or worse

$ary = array(
    name => "Smith",
    class => "2A"
);
如何使用regexp向数组键添加引号


这个项目有数千个php文件。任何人都有过这样的经历,您建议如何搜索和替换所有php文件。谢谢。

您应该使用支持使用正则表达式查找和替换选项的文本编辑器


请参阅:

您将需要两个带有find/replace的regexp过程

将列出第一个替换
$ary[name]=“Smith”
的文件

匹配:
(\$[a-zA-Z0-9]+\[)([^\]]+)\]

替换:
\1'\2']

第二个目标是
name=>“Smith”
案例:

匹配:
([a-zA-Z0-9]+)\s*=>

替换:
'\1'=>

要大规模替换它,您可以使用vim作为任何成熟的PHP IDE,如NuSphere或PhpStorm或许多文本编辑器(Notepad++或SublimiteText)-只需检查其中的菜单“搜索”。确保要修改的文件处于版本控制之下,以便可以回滚不需要的任何更改


此外,如果您的键可能包含下划线,请在两个regexp中使用
[a-zA-Z0-9\]
而不是
[a-zA-Z0-9]

显示该代码的一些实际片段(不带引号的键)可能重复您如何从数千个无效文件开始?!?为什么要更改此设置?@Dagon当
error\u reporting
值设置为隐藏通知及以上内容很长一段时间时,就会发生这种情况。当我举起这个装置的时候,我处理过这种事情。我想OP也有类似的情况,看起来答案只修复了
$ary[name]=“Smith”内容,但不是其他变体