php if-elseif函数有条件(问题)

时间:2015-01-25 13:21:31

标签: php

我写了一个包含if语句的php函数,但它似乎不起作用。 (我已经经历过一次,我想知道为什么)

这是功能:

function calculate_price_index($price){
    if($price > 0 && $price <= 99){
        $price_index = 8;   
    } elseif($price >= 100 && $price <= 199){
        $price_index = 1;   
    } elseif($price >= 200 && $price <= 299){
        $price_index = 2;   
    } elseif($price >= 300 && $price <= 399){
        $price_index = 3;   
    } elseif($price >= 400 && $price <= 499){
        $price_index = 4;   
    } elseif($price >= 500 && $price <= 599){
        $price_index = 5;   
    } elseif($price >= 600 && $price <= 699){
        $price_index = 6;   
    } elseif($price >= 700){
        $price_index = 7;   
    }
}

我想这样执行:

calculate_price_index($_POST['price']);
echo $price_index;

但它没有回应任何东西。但是,当我没有将此声明为函数时,它可以正常工作。

谢谢!

6 个答案:

答案 0 :(得分:1)

你必须在功能结束时使用

return $price_index;

答案 1 :(得分:1)

有两种方法可以做到这一点(不要想知道你的if-else可能会更轻):

  1. 函数必须返回price_index,因此请以 return $ price_index;
  2. 结束

    并写

    echo calculate_price_index($_POST['price']);
    
    1. 在您的函数中使用Global并通过 global $ price_index;
    2. 启动它

答案 2 :(得分:1)

function calculate_price_index($price){
    if($price > 0 && $price <= 99){
        $price_index = 8;   
    } elseif($price >= 100 && $price <= 199){
        $price_index = 1;   
    } elseif($price >= 200 && $price <= 299){
        $price_index = 2;   
    } elseif($price >= 300 && $price <= 399){
        $price_index = 3;   
    } elseif($price >= 400 && $price <= 499){
        $price_index = 4;   
    } elseif($price >= 500 && $price <= 599){
        $price_index = 5;   
    } elseif($price >= 600 && $price <= 699){
        $price_index = 6;   
    } elseif($price >= 700){
        $price_index = 7;   
    }
 // return your values from here
 return $price_index;
}

我想这样执行:

$price_index = calculate_price_index($_POST['price']);
echo $price_index;

答案 3 :(得分:1)

您可能正在使用全局$price_index

在PHP中,需要像这样使用全局变量:

function calculate_price_index($price){
    if($price > 0 && $price <= 99){
         $GLOBALS['price_index'] = 8;   
    } elseif($price >= 100 && $price <= 199){
         $GLOBALS['price_index'] = 1;   
    } elseif($price >= 200 && $price <= 299){
         $GLOBALS['price_index'] = 2;   
    } elseif($price >= 300 && $price <= 399){
         $GLOBALS['price_index'] = 3;   
    } elseif($price >= 400 && $price <= 499){
         $GLOBALS['price_index'] = 4;   
    } elseif($price >= 500 && $price <= 599){
         $GLOBALS['price_index'] = 5;   
    } elseif($price >= 600 && $price <= 699){
         $GLOBALS['price_index'] = 6;   
    } elseif($price >= 700){
         $GLOBALS['price_index'] = 7;   
    }
}

参考:http://www.w3schools.com/php/php_superglobals.asp

答案 4 :(得分:0)

尝试将echo()函数放在calculate_price_index()函数中。我编辑了你的代码:

<?php
function calculate_price_index($price){
if($price > 0 && $price <= 99){
    $price_index = 8;   
} elseif($price >= 100 && $price <= 199){
    $price_index = 1;   
} elseif($price >= 200 && $price <= 299){
    $price_index = 2;   
} elseif($price >= 300 && $price <= 399){
    $price_index = 3;   
} elseif($price >= 400 && $price <= 499){
    $price_index = 4;   
} elseif($price >= 500 && $price <= 599){
    $price_index = 5;   
} elseif($price >= 600 && $price <= 699){
    $price_index = 6;   
} elseif($price >= 700){
    $price_index = 7;   
}
echo $price_index;
}
calculate_price_index(500);
?>

如果您要使用$ _POST,请确保将其转换为整数。

答案 5 :(得分:0)

你应该返回最后使用的变量,如:

 return $price_index;