我使用许多不带引号的数组键开始了一个项目。
现在我遇到了这种方法的问题,当我开始我的项目时我不知道它很糟糕。出于某种原因,我终于想显示 E_NOTICES 错误,但它崩溃了,因为日志中包含数百万条通知,例如PHP Notice: Use of undefined constant message - assumed 'key'
.
所以要修复它,我可以在我的整个项目中为我的键添加引号,但是有这么多!有没有办法用算法或任何东西来修复我的代码?$my_array[key]
我想用带引号的字符串 EG: by替换任何未定义的常量
$my_array['key']
。
谢谢。
编辑: 我成功地使用 rejex 修复了所有声明,如下所示:
\[([^0-9\$\'\"\]])([^\'\"\]]*)\]
至\[\'\1\2\'\]
但这还不够,在很多情况下使用不带引号的键而不带括号,例如:
array_key_exists(unquotedKey,$array)
$array['key'] = array( unquotedKey => array(96,56) );
ETC...
我可以使用正则表达式修复所有情况,但我想我会遇到很多麻烦来处理它,有时我的数组的键确实是常量,不应该被引用!如果有人有更好的解决方案,那将对我有很大帮助。
完美的解决方案是能够在 PHP 用带引号的字符串替换未定义的常量后获取我的代码,这可能吗?每次编译时它都会这样做,它可能暂时存储在某个地方。