或者更確切地說,「修復用作PHP數組鍵的未加引號的字符串」,但對於標題來說有點長。修復未引用的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;
凡user_information
和access_bit
意味着是字符串和ACCESS_NULL
是一個定義的常量。好的是,常量只能用大寫字母來定義。
而爲了讓事情變得更加有趣,我們也有JavaScript中的同一PHP文件,其中類似array[id] = 0;
代碼是完全正常的。
我想有效地收拾這個爛攤子,敷在單引號所有這些不確定的常量,但我不知道一個簡單的查找/替換(甚至用正則表達式)將做到這一點。有什麼想法嗎?
即使您使用基於標記器/分析器的工具來解決該問題,您也不會避免手動驗證。所以你也可以去做一個正則表達式修復,這個修復可以很容易地對上下文敏感。 – mario