Вы почти наверняка не хотите переменные (например, ${$fieldsArray[$i]}
). Кроме того, $thisWord.substring(1)
выглядит так, как будто вы пытаетесь вызвать метод, но это не то, что он делает; .
для конкатенации строк. В PHP строки не являются объектами. Используйте функцию substr
, чтобы получить подстроку.
preg_replace_callback
может заменить весь ваш код, но его использование функций более высокого порядка может оказаться слишком сложным, чтобы в него прямо сейчас проникнуть. Например,
function sequence($arr) {
return function() {
static $i=0
$val = $arr[$i++];
$i %= count($arr);
return $val;
}
}
echo preg_replace_callback('/\*\w+/', sequence(array('Dog', 'man')), "*Man bites *dog.");
будет производить "Собака кусает человека". Для примера кода требуется PHP 5.3 для анонимных функций .