0

array_key_exists()对所有实例进行正则表达式搜索和替换的最佳方法是什么isset()?请不要引用 Donald Knuth 关于优化的引用,是的,我知道这两个函数之间的区别

这是我目前在我的 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)
4

2 回答 2

0

不是最优雅的解决方案,但添加到您当前的正则表达式中,我们可以找到两种类型的搜索条件。

array_key_exists\s*(\s*'|$['|\S]\s*,([^)]*))

于 2014-03-10T00:33:27.207 回答
0

我能做的最好的事情是运行第二次搜索和替换以覆盖对两个参数都使用变量的实例:

array_key_exists($my_key,$my_array)

搜索和替换2:

  • 搜索:

    array_key_exists\s*\(\s*(\$[^,]*)\s*,([^)]*)\)

  • 用。。。来代替:

    isset($2[$1])

于 2014-03-12T04:35:21.503 回答