if($title=="Random 1.5"){ //value1
$ytitle = "Custom 1.5";
}
else if($title=="Another 1.6"){ //value2
$ytitle = "Custom 1.6";
}
else if($title=="Bold Random 1.5"){ //value3
$ytitle = "Custom 1.7";
}
Value1和Value3检索True,因为( Random 1.5 )具有字符串。如何解决这个问题?我想发布 Bold Random 1.5 值。谢谢你的帮助。
答案 0 :(得分:2)
你正在做精确的字符串匹配,而不是子字符串匹配,所以除非你的$title
值与if()语句中的字符串完全相同,否则你的“随机1.5”和“大胆的随机1.5“将永远匹配。
e.g。
$teststring = 'Random 1.5';
($teststring == 'Random 1.5') // evaluates to TRUE
($teststring == 'Bold Random 1.5') // evaluates to FALSE
但如果你有
strpos('Random 1.5', $teststring) // integer 0 result, not boolean false
strpos('Bold Random 1.5', $teststring) // integer 4 result, not boolean false
都会成功,因为“Random 1.5”会出现在两个被搜索的字符串中。
同样,由于您反复针对多个值测试一个变量,请考虑使用switch()代替:
switch($title) {
case 'Random 1.5': $ytitle = 'Custom 1.5'; break;
case 'Another 1.6': $ytitle = 'Custom 1.6'; break;
case 'Bold Random 1.5': $ytitle = 'Custom 1.7'; break;
}