if 语句中的 PHP 函数未运行


PHP function within if statement not running

我在PHP中有类似于以下内容的代码:

if(move_uploaded_file($tempfile, $newfilelocation) && functionReturningFalse()) {} else {...}

假设第一个函数返回 true(成功移动上传的文件),并且有第二个函数返回 false。为什么文件没有被移动?如果我删除第二个函数调用,文件将移动到其新位置。

编辑:我不是在问为什么大括号{}内的代码不会运行。我认为 php move_uploaded_file 函数在被调用时应该移动一个临时文件,即使旁边调用的函数 (functionReturningFalse()) 返回 false。事实并非如此。如果第二个函数返回 false,则不会移动我的文件。

if (true && false) {
    echo 'both true';
} else {
    echo 'one or both false';
}

请参阅!(不是)

if (true && ! false) {
    echo 'both true';
} else {
    echo 'one or both false';
}

或明确... if(move_uploaded_file($tempfile, $newfilelocation) == true && functionReturningFalse() == false) {

if((move_uploaded_file($tempfile, $newfilelocation)) && ! (functionReturningFalse())) {} else {...}

如果我删除第二个函数调用,文件将移动到其新位置。

你走错了路。我不知道是什么改变了行为(或者它是否正在改变),但一般来说&&右侧任何函数调用的返回值都不会改变&&左侧函数调用的行为

一个函数的主体可能会撤消或以其他方式干扰先前函数调用的结果,但听起来不像是这里正在发生的事情。即使如此,它也与第二个函数的返回值没有任何关系。