Не уверен, как это описать это с лучшим названием, однако вот моя проблема:
У меня есть функция замены с несколькими логическими параметрами:
- регулярное выражение
- целых слов (только когда регулярное выражение == false)
- с учетом регистра
и это означает, что мне нужно выбрать 1 из 4 способов заменить мой текст. В настоящее время мой код выглядит так:
(эти опции действительно являются истиной / ложью как строка, переданная через POST из набора флажков jquery )
if($regex=='true')
{
if($casesens=='true')
{
$p->aData['body'] = preg_replace('/'.$q.'/', $r, $p->aData['body']);
}
else
{
$p->aData['body'] = preg_replace('/'.$q.'/i', $r, $p->aData['body']);
}
}
else
{
if($wwords=='true')
{
$q = " ".$q." ";
$r = " ".$r." ";
}
if($casesens=='true')
{
$p->aData['body'] = str_replace($q, $r, $p->aData['body']);
}
else
{
$p->aData['body'] = str_ireplace($q, $r, $p->aData['body']);
}
}
Как вы можете видеть, если придется сравнивать $casesens
в обоих условиях, и это становится все более сложным, если мне нужно добавить больше параметров в пользовательский интерфейс.
Есть ли лучший или более элегантный способ написать это?