代码如下
function subscribe($api, $target_list_name, $fname, $lname, $email_to_subscribe, $membership_level_id) {
$temp_membership_name = "";
if ((int) $membership_level_id == 2) {
$temp_membership_name = "Option 1";
} elseif ((int) $membership_level_id == 5) {
$temp_membership_name = "Option 2";
} else {
$temp_membership_name = "Option 3";
}
}
由于某些原因,选项3始终是结果,我已经测试了$ membership_level_id设置为2和5,两次都是else块执行。
不知道为什么有任何提示?
答案 0 :(得分:1)
function subscribe($api, $target_list_name, $fname, $lname, $email_to_subscribe, $membership_level_id) {
$temp_membership_name = "shevehferhgifsfshfishfishf";
if ((int) $membership_level_id == 2) {
$temp_membership_name = "Option 1";
} elseif ((int) $membershipMWAHHAHAHHAHAHA_level_id == 5) {
$temp_membership_name = "Option 2";
} else {
$temp_membership_name = "Option 3";
}
}
答案 1 :(得分:0)
您错过了代码else if
中的空间。
我测试了它,你可以看看:
在此测试: https://eval.in/83367
function subscribe($api, $target_list_name, $fname, $lname, $email_to_subscribe, $membership_level_id) {
$temp_membership_name = "";
if ((int) $membership_level_id == 2) {
$temp_membership_name = "Option 1";
} else if ((int) $membership_level_id == 5) {
$temp_membership_name = "Option 2";
} else {
$temp_membership_name = "Option 3";
}
return $temp_membership_name;
}
echo subscribe("", "", "", "", "", "2") . " ";
echo subscribe("", "", "", "", "", 2);
输出:
Option 1 Option 1
答案 2 :(得分:0)
您应该检查输入。 php执行自动类型转换,因此即使数字存储为字符串,它仍应评估。类型转换不是必需的。
a)你的代码没有正确提供参数(检查拼写?)
b)输入的第一个字符中有空格或非数字值,导致类型转换返回值0或
c)你的函数的其他部分正在搞乱变量
我运行了您直接发布的代码,它可以正常使用整数或文本。我认为你间接设置$ membership_level_id,你应该检查你的输入,以确保该功能实际上接收你的想法。
答案 3 :(得分:-1)
如何使用“switch”语句然后提供一个标准的“默认”选项?
说... if ((int)$membership_level_id == 2)
PHP仅将文本转换为数字。
所以......在使用值之前检查$membership_level_id
是否为数字呢?
像
`if(is_numeric($_membership_level_id))
{
//number.
} else {
// not a number.
}`
答案 4 :(得分:-2)
您可以将其用作解决方案。
if ($membership_level_id == "2") {
$temp_membership_name = "Option 1";
} elseif ($membership_level_id == "5") {
$temp_membership_name = "Option 2";
} else {
$temp_membership_name = "Option 3";
}
答案 5 :(得分:-4)
function subscribe($api,$target_list_name,$fname,$lname,$email_to_subscribe, $membership_level_id)
{
$temp_membership_name = "";
if ($membership_level_id == "2") {
$temp_membership_name = "Option 1";
} elseif ($membership_level_id =="5") {
$temp_membership_name = "Option 2";
} else {
$temp_membership_name = "Option 3";
}
}
尝试使用此代码或对$ member_level_id
的值进行故障排除function subscribe($api,$target_list_name,$fname,$lname,$email_to_subscribe, $membership_level_id)
{
$temp_membership_name = "";
echo $membership_level_id;exit;
if ((int)$membership_level_id == '2') {
$temp_membership_name = "Option 1";
} elseif ((int)$membership_level_id =='5') {
$temp_membership_name = "Option 2";
} else {
$temp_membership_name = "Option 3";
}
}