[英]PHP function won't print message with variable
所以我試圖創建一些錯誤消息,代碼如下所示:
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的數組,但這也不起作用。
我在這做錯了什么?
這似乎是變量類型的問題。
確保你在這方面保持一致。 例如,讓我們決定我們希望值為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];
}
嘗試使用具有后備安全機制的開關。
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
轉換$errorcode
Integer。 但它對於default
情況並不重要,但它將排除字符串"1"
內的整數問題。
確保index是String Add
$errorcode = "$errorcode";
作為func中的第一行
提示:將其更改為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";
}
}
答案只是刪除數組中的數字。
見@fedorqui評論!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.