或者更确切地说“修复用作 PHP 数组键的未引用字符串”,但这对于标题来说有点长。
我继承了一个相当大的代码库,其中数组是这样编写的:
$array[id] = 0;
$array[value] = "test"
虽然这段代码确实有效,但它引起了很多Use of undefined constant
注意,所以这些行真的需要变成:
$array['id'] = 0;
$array['value'] = "test"
我们谈论的是散布在数千个文件中的数十万行代码。
也有这样的情况:
$_SESSION[user_information][access_bit][ACCESS_NULL] = 1;
where user_information
andaccess_bit
是字符串,ACCESS_NULL
是一个定义的常量。好消息是常量仅以大写形式定义。
为了让事情变得更有趣,我们还在同一个 php 文件中添加了 javascript,其中的代码array[id] = 0;
非常好。
我想有效地清理这个烂摊子并将所有这些未定义的常量用单引号括起来,但我不确定一个简单的查找/替换(即使使用正则表达式)是否会做到这一点。有什么想法吗?