IF条件不';没有按预期工作


IF condition doesn't work as expected

这个php代码的小问题:

$good = "<img src=./images/good.gif>";
$bad = "<img src=./images/bad.gif>";
while ($muuttuja <= $filecount) {
    $muuttuja = $muuttuja + 1;
    $arvostelutiedosto = "./moviefiles/$movie/review" . $muuttuja . ".txt";
    if (file_exists($arvostelutiedosto)) {
        $arvostelu = file($arvostelutiedosto);
        list($teksti[$muuttuja], $arvio[$muuttuja], $tekija[$muuttuja], $tyopaikka[$muuttuja]) = $arvostelu;
    }
        if ($arvio[$muuttuja] === "bad") {
            $arvio[$muuttuja] = $bad;
        } else {
            $arvio[$muuttuja] = $good;
        }
}
<?= $arvio[1] ?>
<?= $arvio[2] ?>
etc

我在上面确定的那个路径中有文件。该文件的第二行是"坏"或"好"。我想将其与"坏"进行比较,如果是真的,打印一个特定的图像(由$bad和$good决定),如果是假的,打印第二个图像。我哪里有错误(我指的是为什么它不起作用)?现在,它将相同的图像打印到每个"审查"

var_dump($arvio[$muuttuja])给出输出字符串(28)"image"<-图像是真实的图像,而不是文本。

var_dump($arvostelu)给出输出数组(4){[0]}=>字符串(4)"测试"[1]=>字符串(3)"坏"[2]=>字符串(7)"测试)[3]=>字符串(1)"a"}

字符串1与if($arvio[$muuttuja]==="坏")中的字符串1相同

我不完全确定问题出在哪里,但您可以试试这个,而不是if-then-else?

$arvio[$muuttuja] = ( strtolower(  trim( $arvio[$muuttuja] ) ) )==='bad' ? $bad : $good;

也许在检查文件是否存在后,您应该使用:-

clearstatcache()

你说:

var_dump($arvostelu) gives output array(4) {[0]}=> string(4) "test" [1]=> string(4) "bad" [2]=> string(7) "testing" [3]=> string(1) "a"}
string 1 is same as in if ($arvio[$muuttuja] === "bad")

但不是真的,看看:

[1]=> string(4) "bad"

坏的有3个字符而不是4个,尝试使用:

if(trim($arvio[$muuttuja]) == 'bad')