我写了一个包含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;
但它没有回应任何东西。但是,当我不将其声明为函数时,它可以正常工作。
谢谢!
必须在函数末尾使用
return $price_index;
两种方法可以做到这一点(不要想知道你的if-else可以更轻):
- 函数必须返回price_index所以用返回 $price_index 结束它;
并写入
echo calculate_price_index($_POST['price']);
- 在函数中使用全局,并通过全局 $price_index 启动它;
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;
您可能正在使用全局$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
尝试将 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,请确保将其转换为整数。
你应该返回变量在末尾使用,如下所示:
return $price_index;