不带引号的php数组()键
我有一个项目,其中有许多不带引号的array()键不带引号的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
$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”代码>内容,但不是其他变体