1

ここで奇妙な問題が発生しています

ファイルをフォルダにコピーしようとしています

 if ($folder) {
        codes.....
    } else if (!copy($filename, $root.$file['dest']) && !copy($Image, $root.$imagePath)){
             throw new Exception('Unable to copy file');
    }

私の質問は、$imageファイルが宛先にコピーされないことです

しかし、もしそうなら

if ($folder) {
        codes.....
    } else if (!copy($Image, $root.$imagePath)){
             throw new Exception('Unable to copy file');
    }

できます。

編集:

最初のファイル名ステートメントが正しいことはわかっています。

この奇妙な問題を解決するのを手伝ってくれる人はいますか? 本当にありがとう!!!

4

3 に答える 3

2

あなたはおそらく言いたいです

else if (!copy($filename, $root.$file['dest']) || !copy($Image, $root.$imagePath))

||(の代わりにメモ&&)

そのままでは、コピーが成功するとすぐに、&&が真になることはないため、PHP は式の評価を停止します。

言い換えると、

$a = false;
$b = true;
if ($a && $b) {
  // $b doesn't matter
}
于 2013-04-26T22:20:22.140 に答える
2

!copy($filename, $root.$file['dest']) が false と評価された場合、php が !copy($Image, $root.$imagePath) を評価しようとする理由はありません。 yyy 式は、関係なく false になります。

于 2013-04-26T22:21:13.663 に答える