Мне нужно выполнить много str_replace($search, $replace, $input)
, используя те же $search
и $replace
. Они взорваны в функции:
function sr($input) {
$search = explode(",","s1,s2,s3,....");
$replace = explode(",","r1,r2,r3,...");
return str_replace($search, $replace, $input);
}
Это не очень эффективно. Из другого SO вопрос я вижу, что я мог бы создать постоянные массивы, но предложенный метод подразумевает сериализацию. Могу поспорить, что это тоже не эффективно, но я прав?
У меня есть скомпилированный язык мышление , поэтому всякий раз, когда я могу сделать что-то постоянное, я счастлив. Но имеет ли это смысл в PHP? Я не профессионал PHP.
Точнее, зная, что эта функция будет использоваться, когда пользователи отправляют веб-запросы на страницу, как я могу эффективно оптимизировать взрывы? Есть ли такая вещь, как предварительно скомпилированный код в PHP? Или я могу определить постоянные массивы один раз, эффективно (например, проверить, создана ли постоянная / доступна ли она в контексте)?
UPDATE
Принимая во внимание предложение Истины, мы можем изменить функцию следующим образом:
function sr($input) {
$search = array("s1","s2","s3",....");
$replace = array("r1","r2","r3",...");
return str_replace($search, $replace, $input);
}
Остается вопрос: оптимально ли объявлять эти массивы при каждом вызове или мы можем попытаться создать их как константы в контексте?