Неопределенная переменная $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
?
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;
}
OP ищет решение, в котором $ new_string не нужно предварительно инициализировать.
Решение состоит в том, чтобы использовать взрываться функция PHP
$new_string = implode($reverse);
//another usage with glue parameter:
//$new_string = implode('', $reverse);
Есть Нет ошибок в выводе вашей программы: —
Это дает правильный вывод для $ new_string