我在PHP中使用此功能时遇到了一些问题。我在此页面上发布了不断变化的项目数量,并且我使用此函数返回数组中的变量:
function grade($a) {
if ($a == 1) {
return $_POST['1'];
}
if ($a == 2) {
return $_POST['2'];
}
if ($a == 3) {
return $_POST['3'];
}
if ($a == 4) {
return $_POST['4'];
}
if ($a == 5) {
return $_POST['5'];
}
if ($a == 6) {
return $_POST['6'];
}
//... you get the idea
}
这可能不是正确的方法。如何缩短此功能,以便我不必为每个可能的数组变量创建if语句?
谢谢你的帮助!
答案 0 :(得分:7)
您可以通过将变量的值用作array键来轻松完成此操作:
function grade($a) {
if (!array_key_exists($a, $_POST)) {
// Given grade key does not exist in the $_POST array
return null;
}
return $_POST[$a];
}
您将注意到,根据documentation,您不必将整数转换为字符串:
此外还会发生以下关键演员:
- 包含有效整数的字符串将强制转换为整数类型。例如。关键" 8"实际上将存储在8下。
答案 1 :(得分:3)
非常简单,你只需将变量传递给return:
function grade($a) {
if( !isset( $_POST[$a] ) )
return 0;
return $_POST[$a];
}
这也会检查它是否存在,以返回0
作为您的成绩。
答案 2 :(得分:2)
您可以使用切换操作符:http://www.php.net/manual/fr/control-structures.switch.php
我没有使用php,但这可能也有效:
function grade($a) {
return $_POST['' . $a];
}
答案 3 :(得分:2)
简单说明:
function grade($a) {
return isset($_POST[$a]) ? $_POST[$a] : '' ;
}
答案 4 :(得分:2)
三元如果是最短的。
function grade($a)
{
return isset($_POST[$a])? $_POST[$a] : null;
}
答案 5 :(得分:0)
你可以像下面那样写作
function grade($a) {
return $_POST[$a];
}
答案 6 :(得分:0)
function grade($a) {
if (isset($_POST[$a])) {
return $_POST[$a];
}
return false;
}