php foreach как $ var ‘неопределенная переменная’

Неопределенная переменная $new_string,

Я написал этот маленький сценарий, потому что мне это было нужно (не спрашивайте, почему).

    $string  = "abcdefghijklmnopqrstuvwxyz"; // just used as an example

// $string becomes "badcfehgjilknmporqtsvuxwzy"
$now_in_pairs = str_split($string, 2);

$reverse = array_map('strrev', $now_in_pairs);

foreach($reverse as $r)   {

$new_string .= $r;

}

echo $new_string;

Я знаю, что могу просто сказать, $new_string = NULL в начале, чтобы избежать неопределенной переменной, но это не помогает мне понять, почему она не определена.

С точки зрения непрофессионала, $r равно значению каждой пары в массиве?

Как может $new_string быть неопределенным, когда он равен $r?

2

Решение

foreach($reverse as $r)   {
$new_string .= $r;
}

$new_string .= $r; средства $new_string = $new_string . $r; Здесь вы добавляете $r к значению переменной $new_string который не объявлен или определен перед этим кодом, т.е. который не существует. Вы можете решить эту проблему, объявив переменную выше foreach лайк :

$new_string="";
foreach($reverse as $r)   {
$new_string .= $r;
}
2

Другие решения

OP ищет решение, в котором $ new_string не нужно предварительно инициализировать.

Решение состоит в том, чтобы использовать взрываться функция PHP

$new_string = implode($reverse);
//another usage with glue parameter:
//$new_string = implode('', $reverse);
1

Есть Нет ошибок в выводе вашей программы: —

http://codepad.org/9FDqrh3D

Это дает правильный вывод для $ new_string

0
По вопросам рекламы [email protected]