使用效率更高array_key_exists()
进行正则表达式搜索并替换isset()
的所有实例的最佳方法是什么?请不要Donald Knuth关于优化的引用,是的,我知道differences between the two functions。
这是我目前在Netbeans搜索和替换中使用的内容:
搜索:
array_key_exists\s*\(\s*'([^']*)'\s*,([^)]*)\)
替换为:
isset($2['$1'])
效果很好,改变了这个:
array_key_exists('my_key',$my_array)
到
isset($my_array['my_key'])
但不会选择这样的实例:
array_key_exists($my_key,$my_array)
答案 0 :(得分:0)
不是最优雅的解决方案,但添加到您当前的正则表达式我们找到了两种类型的搜索条件。
array_key_exists \ S *(\ S * '| $ [' | \ S] \ S *,([^)] *))
答案 1 :(得分:0)
我能做的最好的事情是运行第二次搜索并替换以覆盖使用两个参数的变量的实例:
array_key_exists($my_key,$my_array)
搜索并替换2:
搜索:
array_key_exists\s*\(\s*(\$[^,]*)\s*,([^)]*)\)
替换为:
isset($2[$1])