我正在尋找什麼是處理函數錯誤的最佳方法。 「DIE」方法是否合適?PHP和函數錯誤
即。例如:php函數調用另一個,例如:
function login(){
$result = verifyDetails("bob", "password123");
if($result == "accepted"){
echo "Welcome bob";
}else{
echo "Error!! \n";
echo $result;
}
}
function verifyDetails($user, $pass){
if(empty($user) || empty($pass)){
die("cannot be empty");
}
if($user == "bob" && $pass == "password"){
return "accepted";
}else{
die("username or password incorrect");
}
}
「DIE」方法返回消息還是一切都停止了?提前
UPDATE
感謝
如果輸出不知道什麼?例如
。在上面的例子中,我把「接受」作爲唯一正確的答案。
如果返回是姓名或身份證號碼,那麼該怎麼辦?那麼你真的不能真正區分錯誤和正確的回報。
再次感謝。
UPDATE /可能的解決方案
function login(){
$result = verifyDetails("bob", "password123");
if($result[0] == "SUCCESS"){
echo "Welcome bob";
}else if($result[0] == "ERROR"){
echo "Error!! \n";
echo $result;
}else{
echo "Unknown Error!!";
}
}
function verifyDetails($user, $pass){
$msg = array();
if(empty($user) || empty($pass)){
$msg[0] = "ERROR";
$msg[1] = "cannot be empty"
return $msg;
}
if($user == "bob" && $pass == "password"){
//say $customerID is extracted from a db
$msg[0] = "SUCCESS";
$msg[1] = $customerID
return $msg;
}else{
$msg[0] = "ERROR";
$msg[1] = "username or password incorrect"
return $msg;
}
}
思路上面的 「可能」 的解決方案&建議,歡迎
UPDATE
檢查Shikiryu更新下使用陣列
您可能想了解有關例外情況。當您必須終止腳本執行時,使用die()是一個相對較好的解決方案。 – mailo 2011-02-28 13:42:37
不應使用@mailo異常來處理應用程序邏輯。 – 2011-02-28 13:45:20