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"。我想将其与 "bad" 进行比较,如果为真则打印一张特定图像(由 $bad 和 $good 确定),如果为假则打印第二张。我在哪里有错误(我的意思是为什么它不起作用)?现在它向每个 "review"
打印相同的图像
var_dump($arvio[$muuttuja]) 给出输出字符串(28)"image" <- 图像是真实图像,不是文本。
var_dump($arvostelu) 给出输出数组(4) {[0]}=> string(4) "test" [1]=> string(4) "bad" [2]=> 字符串(7) "testing" [3]=> 字符串(1) "a"}
字符串 1 与 if ($arvio[$muuttuja] === "bad")
相同
我不太确定问题出在哪里,但您可以试试这个而不是 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')
此 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"。我想将其与 "bad" 进行比较,如果为真则打印一张特定图像(由 $bad 和 $good 确定),如果为假则打印第二张。我在哪里有错误(我的意思是为什么它不起作用)?现在它向每个 "review"
打印相同的图像var_dump($arvio[$muuttuja]) 给出输出字符串(28)"image" <- 图像是真实图像,不是文本。
var_dump($arvostelu) 给出输出数组(4) {[0]}=> string(4) "test" [1]=> string(4) "bad" [2]=> 字符串(7) "testing" [3]=> 字符串(1) "a"}
字符串 1 与 if ($arvio[$muuttuja] === "bad")
相同我不太确定问题出在哪里,但您可以试试这个而不是 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')