if语句中的PHP函数未运行

时间:2013-11-12 19:13:33

标签: php file-upload

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

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

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

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

3 个答案:

答案 0 :(得分:0)

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

看到了! (NOT)

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

  

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

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

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