PHP函数没有返回字符串

Anr*_*rgh 1 php string function

我构建了一个带文件名的函数,并在文件名中递增一个计数器并返回它,但是,一切都是正确的,除了返回不返回文件名.

有什么帮助吗?

我的代码:

$filename = join("", array_reverse($date));
$filename .= ".xml";
$dir = "../gigs";
$file = $dir."/".$filename;

function getNewFileName($filename, $dir) {
if (is_file("$dir/$filename")) {
    if (strpos($filename, "_") === false) {
        $filename = str_replace(".xml","_1.xml",$filename);
        getNewFileName($filename, $dir);
    }
    else {
            $pos = strpos($filename, "_");
            $counter = (int)substr($filename, $pos+1,1);
            $counter++;
            $filename = substr($filename,0, $pos)."_".$counter.".xml";
            getNewFileName($filename, $dir);
        }
    } else {
                // echoing HERE shows that the string is manipulated correctly
        return (string)$filename; // but returning here is not working
    }
}

echo getNewFileName($filename, $dir); // <- this last line prints nothing out
Run Code Online (Sandbox Code Playgroud)

提前致谢.

Ben*_*mes 11

这条线:

getNewFileName($filename, $dir);
Run Code Online (Sandbox Code Playgroud)

需要一个return:

return getNewFileName($filename, $dir);
Run Code Online (Sandbox Code Playgroud)

  • 你正在进行递归函数调用.如果你没有在堆栈中返回它的返回值,那么基本情况永远不会评估为真. (3认同)