我不知道这是不是我,但我对任何c语言中的一行过敏,我总是喜欢在if之后看到大括号,所以不是
if($a==1)
$b = 2;
或
if($a==1) $b = 2;
我想看看
if($a==1){
$b = 2;
}
我想我可以支持我的偏好,认为第一个更容易出错,而且可读性较差。
我现在的问题是我正在处理一个包含这一行ifs的代码,我想知道是否有某种实用程序可以帮助我纠正这些ifs,某种PHP代码美化了会这样做。
我还在考虑开发某种可以与linux的sed命令一起使用的正则表达式,以实现这一点,但我不确定这是否可能,因为正则表达式应匹配一行ifs,并用它们包装curley括号,所以逻辑是找到一个if和条件语句,然后查找{跟随条件,如果没有找到然后换行下一行,或者换行前的下一组字符然后用它包装{和}
您怎么看?
答案 0 :(得分:1)
您最好的选择可能是使用内置的PHP tokenizer,并解析生成的令牌流。
有关PHP Tokenizer的更多信息,请参阅此答案:https://stackoverflow.com/a/5642653/1005039
您还可以查看我编写的脚本来解析PHP源文件以修复遗留代码中的另一个常见问题,即修复不带引号的数组索引: https://github.com/GustavBertram/php-array-index-fixer/blob/master/aif.php
该脚本使用状态机而不是通用解析器,但在您的情况下,它可能已经足够了。