簡體   English   中英

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 {...}

如果刪除第二個函數調用,文件將移動到新位置。

您走錯了路。 我不知道是什么改變了行為(或者根本沒有改變),但是一般而言&&右側的任何函數調用的返回值都不會改變函數調用的行為。 &&左側

可能的一個函數撤消或以其他方式與前一個函數調用的結果產生干擾,但它聽起來並不像這就是發生在這里。 即使是這種情況,它也與第二個函數的返回值沒有任何關系。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM