質問させてください。
下のような形で、サムネイルがある場合は普通の画像とサムネイルを、ない場合は普通の画像だけ削除するコードを書いていまして、削除が失敗したときに例外を投げる用に戻り値を受け取っています。
サムネイルがない場合は問題ないのですが、ある場合、unlink
を2回実行することになり、$res
が上書きされてしまって、戻り値が正しく受け取れないです。
これを2枚の画像どちらかの削除が失敗したら、$res
にfalse
を入れるためにはどのようにすればよろしいでしょうか。
どなたかご存知の方がいらっしゃいましたらご教授いただけますと助かります。
よろしくお願いいたします。
php
1// サムネイルがある場合は、「photo.jpg」と「thumb.jpg」両方削除 2if ($flg === 1) { 3 $res = unlink ('photo.jpg'); // ←これと 4 $res = unlink ('thumb.jpg'); // ←これのどちらかが失敗したら $res に false を入れたい 5// サムネイルがない場合は「photo.jpg」だけ削除 6} else { 7 $res = unlink ('photo.jpg'); 8} 9 10if ($res === false) { 11 throw new Exception('ファイルの削除に失敗しました'); 12}
試したこと
if 文でどちらの削除も成功したときだけtrue
を入れる、というふうにしてみたのですが、階層が深くなってしまって見にくいので、もう少しシンプルにしたいです。
php
1if ($flg === 1) { 2 $res1 = unlink ('photo.jpg'); 3 $res2 = unlink ('thumb.jpg'); 4 if ($res1 === true && $res2 === true) { 5 $res = true; 6 } else { 7 $res = false; 8 } 9} else { 10 $res = unlink ('photo.jpg'); 11}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/09 16:54 編集
退会済みユーザー
2019/03/09 17:01 編集
2019/03/09 17:05