0

array_key_exists()のすべてのインスタンスを正規表現検索してより効率的なものに置き換える最良の方法はisset()何ですか? 最適化に関する Donald Knuth の引用はありません。はい、私は2 つの関数の違いを認識しています。

これは、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

私ができる最善の方法は、2 番目の検索と置換を実行して、両方の引数に変数を使用するインスタンスをカバーすることでした。

array_key_exists($my_key,$my_array)

検索と置換 2:

  • 検索する:

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

  • と置換する:

    isset($2[$1])

于 2014-03-12T04:35:21.503 に答える
0

最も洗練されたソリューションではありませんが、現在の正規表現に追加すると、両方のタイプの検索条件が見つかります。

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

于 2014-03-10T00:33:27.207 に答える