所以我试图创建某种错误消息,代码如下:
function callError($errorcode, $attempts) {
$errormessage = array(
"0" => "Du har angivit fel lösenord, du har ". $attempts ." försök kvar. Kontrollera att du har skrivit rätt användarnamn.",
"1" => "Ditt konto har låsts, kontakta webmaster för att återställa det.",
"2" => "Användare finns inte, kontrollera att du har skrivit rätt användarnamn."
);
return $errormessage[$errorcode];
}
但是当我运行第一条错误消息时它不起作用,它甚至都不会出现。另一方面,当我运行另外两个时,它的工作完美无瑕!我试图返回一个包含$ errormessage和$ attempts的数组,但这也不起作用。
我在这里做错了什么?
答案 0 :(得分:1)
这似乎是变量类型的问题。
确保您对此保持一致。例如,让我们决定我们希望值为int
:
function callError($errorcode, $attempts) {
$errorcode = (int) $errorcode;
$errormessage = array(
0 => "Du har angivit fel lösenord, du har ". $attempts ." försök kvar. Kontrollera att du har skrivit rätt användarnamn.",
1 => "Ditt konto har låsts, kontakta webmaster för att återställa det.",
2 => "Användare finns inte, kontrollera att du har skrivit rätt användarnamn."
);
return $errormessage[$errorcode];
}
答案 1 :(得分:1)
尝试使用具有后备安全机制的开关。
function callError($errorcode, $attempts) {
$output = '';
switch((int)$errorcode) {
case 0:
$output = 'Du har angivit fel lösenord, du har '. $attempts .' försök kvar. Kontrollera att du har skrivit rätt användarnamn.';
break;
case 1:
$output = 'Ditt konto har låsts, kontakta webmaster för att återställa det.';
break;
case 2:
$output = 'Användare finns inte, kontrollera att du har skrivit rätt användarnamn.';
break;
default:
$output = 'SOMETHING WENT WRONG [CUSTOM MESSAGE]'.$errorcode.' : '.$attempts;
break;
}
// Do something more here with your error handling if needed
// Return the output message
return $output;
}
这将强制类型转换$errorcode
为整数。但它对于default
情况并不重要,但它将排除字符串"1"
内的整数问题。
答案 2 :(得分:0)
确保index是String 添加
$errorcode = "$errorcode";
作为func的第一行
答案 3 :(得分:0)
提示:将其更改为switch()
语句:
function callError($errorcode, $attempts) {
switch ($errorcode) {
case 0:
return "Du har angivit fel lösenord, du har ". $attempts ." försök kvar. Kontrollera att du har skrivit rätt användarnamn.";
case 1:
return "Ditt konto har låsts, kontakta webmaster för att återställa det.";
case 2:
return "Användare finns inte, kontrollera att du har skrivit rätt användarnamn.";
default:
return "No error associated";
}
}
答案 4 :(得分:0)
答案只是删除数组中的数字。
请参阅@fedorqui评论!