只有当变量$is_no_art
为false
时,我才尝试在PHP中运行copy()
命令。但是copy()
语句总是在执行,即使$is_no_art
是true
或NULL
。检查以下代码:
if($ele != NULL) {
foreach($ele as $e) {
$album_art_url = trim($e->src);
if(strpos($album_art_url, 'default') === false) {
echo "image OK'n";
$is_no_art = false;
} else {
echo "default image'n";
$is_no_art = true;
}
}
} else {
echo "not found'n";
$is_no_art = true;
}
if($is_no_art === false || $is_no_art != NULL) {
copy($album_art_url, 'img/' . $album_id . '.jpg');
}
我使用的逻辑有问题吗?如果是,如何纠正?
如果$is_no_art
是true
或false
,则不是null
。这意味着if语句的第二部分将始终为true,并且该代码将执行。事实并非如此;无论如何都没有必要,因为你只需要第一条规则:
if($is_no_art === false) { // false is not null so you're good to go
copy($album_art_url, 'img/' . $album_id . '.jpg');
}