Не могу понять, почему возвращение не является правильным.Это должно быть dir_3
, если echo
это правильно.
Функция проверяет массив existing_dirs
, если существует $new_dir
, если он существует, если добавляет _xx
к $new_dir
, если нет, он должен возвращать $new_dir
.Но это не так, однако, если вы echo $new_dir
это правильно dir_3
.
Потратил часы на отладку, что кажется простой проблемой!
Спасибо
function dir_name($new_dir, $count){
$existing_dirs = array('dir', 'dir_1', 'dir_2');
if(in_array($new_dir, $existing_dirs)){
$count ++;
if($count == 1) {
$new_dir = $new_dir . '_' . $count;
}
if($count > 1){
$dir_parts = explode('_', $new_dir);
$new_dir = $dir_parts[0] . '_' . $count;
}
dir_name($new_dir, $count);
} else {
//echo $new_dir;
return $new_dir;
}
}
echo dir_name('dir');