Я хочу изменить строку (на PHP), используя несколько условных выражений, чтобы определить, какие изменения должны быть сделаны, обновить строку и продолжить изменение обновленной строки.изменение строки «рекурсивно» в PHP
Например, начните со строки и на основе условия, внесите изменения в символ, затем используйте вторую версию строки и на основе другого условия измените ее еще и так далее способ, который в конце процесса, изменения были кумулятивными.
По-видимому, переменная сфера предотвращает следующий подход:
$newstring = "This is a test string";
$value[] // This is an array already defined.
for ($i = 0; $i<=count($value); $i++) {
switch ($value[$i]) {
case -1:
$newstring = preg_replace(// do something with $newstring);
break;
case 0:
$newstring = preg_replace (// do something else with $newstring);
break;
case 1:
$newstring = substr_replace(//do something else with $newstring);
break;
}
}
Есть ли способ сделать это?
Заранее спасибо.
ОБНОВЛЕНИЕ: Вот мой код. Как вы можете ожидать, $_POST['text1']
- это строка, а $_POST['array']
- это двумерный массив.
$text1 = $_POST['text1'];
$value = $_POST['array'];
for ($i = 0; $i<=count($value); $i++) {
switch ($value[$i][0]) {
case -1:
$newstring = preg_replace("/".$value[$i][1]."/","",$text1,1);
break;
case 0:
break;
case 1:
$newstring = substr_replace($text1, $value[$i][1],$value[$i][2],0);
break;
}
}
Какая ошибка возникает у вас? Как вы знаете, что это связано с переменной областью? –
Я думаю, что вы имели в виду // что-то делать с $ newstring .. Я не думаю, что это проблема с переменной областью. – amitchd
@Jeremiah: У меня нет ошибки. Я получаю последнее изменение, сделанное оператором switch, которое представляет собой только одно изменение вместо нескольких изменений, применяемых к строке. –