И не забывайте важнейшее отличие между "поиском с заменой" и "рефакторингом"!
Вроде бы кажется, обе функции выполняют одно и то же дело?
Однако на самом деле это совершенно не так.
---
Поиск-замена ищет совпадение в тексте.
1) К примеру, я хочу заменить $user_id на $uid
2) Поиск-замена найдет и заменит все совпадения, и даже $user_ident и $user_id_other
То есть, ему пофиг, та ли это переменная, или нет, главное, чтоб совпадал текст
3) Даже, если вы укажзете искать по строгому совпадению, обычный поиск-замена заменит переменные везде, даже там, где не надо (к примеру, внутри функций и классов).
Как видите, полюбому придется самому тщательно просматривать все предлагаемые изменения, или испортите скрипт.
----
Рефакторинг - совершенно другое дело.
Он работает по Токенам, то есть, по "составным кирпичам" языка РНР.
Если мы ему даем задание переименовать переменную $user_id, то он будет искать именно ПЕРЕМЕННУЮ языка РНР, а не тупые совпадения в тексте. И более того, искать именно там, где она применяется.
К примеру, $myvar у меня может объявляться совершенно в разных файлах и никак не относиться друг к другу. Мне нужно переименовать начиная с того места, где я огбъявил конкретную переменную и не затрагивать другие файлы.
Поиск-замена с таким не справляется. Рефакторинг же, позволяет все сделать за несколько секунд.