IF条件不能按预期工作

时间:2015-02-19 16:17:13

标签: php arrays string variables if-statement

这个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

我在该路径中有文件,这是上面确定的。该文件的第二行是&#34;坏&#34;或&#34;好&#34;。我想把它与&#34;坏&#34;进行比较。如果是真的则打印一个特定图像(由$ bad和$ good确定),如果为false则打印第二个特定图像。我在哪里有错误(并且我的意思是它为什么不起作用)?现在它将相同的图像打印到每个&#34;评论&#34;

var_dump($ arvio [$ muuttuja])给出输出字符串(28)&#34;图像&#34; &lt; - 图像是真实图像,而不是文本。

var_dump($ arvostelu)给出输出数组(4){[0]} =&gt; string(4)&#34; test&#34; [1] =&GT; string(4)&#34; bad&#34; [2] =&GT;字符串(7)&#34;测试&#34; [3] =&GT; string(1)&#34; a&#34;}

字符串1与if中的相同($ arvio [$ muuttuja] ===&#34; bad&#34;)

2 个答案:

答案 0 :(得分:1)

我不确定问题究竟在哪里,但你可以试试这个而不是if if else?

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

也许在检查文件存在之后你应该使用: -

clearstatcache()

答案 1 :(得分:0)

你说:

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')