Я искал, как лучше всего обрабатывать ошибки функций.Подходит ли метод "DIE"?
т.е.Функция 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" сообщение или все замирает?
заранее спасибо
ОБНОВЛЕНИЕ
что если вывод неизвестен?
например.в приведенном выше примере я поместил «принято» в качестве единственно правильного ответа.
Что делать, если возвращаемое имя - это имя или идентификационный номер ... тогда вы не можете разделить ошибку и правильные возвращаемые значения.
еще раз спасибо.
ОБНОВЛЕНИЕ / Возможное решение
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;
}
}
идеи и предложения по вышеуказанному "возможному" решению приветствуются
ОБНОВЛЕНИЕ
Проверьте ответ обновления 2 Шикирю ниже для более чистой версии с использованием массивов