PHP-循环语句语法不正确,因此它永远不会被执行


PHP - Loop Statement syntax incorrect so it never will be executed

我正在写一个PHP脚本,我想检查一个数字是否在两个其他数字之间,比如20< x < 40,但在一个更高的范围内,比如

0,400,500,600,800,1000,1200,1400,1600,1800,2000,2200,2400,2600,2800,3000,3200,3500,3800,4100,4400,4700,5000

我想检查它是否在0和400之间,然后它是否在它们之间echo,如果不是,则检查它是否介于400和500之间。。。我的程序是这样的:

$lt=array(0,400,500,600,800,1000,1200,1400,1600,1800,2000,2200,2400,2600,2800,3000,3200,3500,3800,4100,4400,4700,5000);
$lt2=array(399,499,599,799,999,1199,1399,1599,1799,1999,2199,2399,2599,2799,2999,3199,3499,3799,4099,4399,4699,4999,99999);
$value = 5000
$legend = count($lt2);
for ($x = 0; $x == $legend+1; $x++);
{
    if (($value >= $lt[$x]) and ($value < $lt2[$x]))
    {
        $y=$x-1;
        echo "True!";
    }
} 

我的问题是,它从来没有进入IF语句。虽然我的if语句是正确的,但我的数字介于两个数字之间,但它没有任何回声。

您的代码有点错误,但我已经帮您修复了:

您的错误:

$value = 5000 缺少分号

for ($x = 0; $x == $legend+1; $x++);需要更改为:for ($x = 0; $x < ($legend - 1); $x++)请注意,for循环中有一个分号,条件是错误的。

此外,$y = $x - 1需要重写为:$y = $x;

$lt=array(0,400,500,600,800,1000,1200,1400,1600,1800,2000,2200,2400,2600,2800,3000,3200,3500,3800,4100,4400,4700,5000);
$lt2=array(399,499,599,799,999,1199,1399,1599,1799,1999,2199,2399,2599,2799,2999,3199,3499,3799,4099,4399,4699,4999,99999);
$value = 5000;
$legend = count($lt2);
for ($x = 0; $x < $legend; $x++)
{
    if (($value >= $lt[$x]) && ($value < $lt2[$x]))
    {
        $y = $x;
        echo "True!";
    }
}
echo $lt[$y];
?>

这一行缺少分号:

$value = 5000

此外,无法达到for语句中的条件$x == $legend + 1。CCD_ 9是CCD_。长度为0或更高,因此$x永远不可能是$legend + 1,因为它被定义为$x = 0

也许,你需要$x <= $legend + 1(也许你不得不省略+ 1(。