Лучшая практика также основана на приложении.
В вашем примере я должен вернуть исключение.В верхней части приложения вы можете запустить попытку / перехват для обработки исключений.
Например
<?php
class User{
public $_name;
public function getUser(){
if(empty($_GET)){
throw new Exception("There is no User");
}
//do something else
return;
}
}
?>
И наконец:
<?php
try {
$user = new User();
$user->getUser();
} catch (Exception $exception) {
echo $exception->getMessage();
}
?>
Преимущество заключается в том, чтото, что вы можете обрабатывать сообщения в одном месте и что с сообщениями об ошибках легче что-то делать, например,
echo "<strong>". $exception->getMessage(). "</strong>";
Редактировать: По той же причине, что и @Ggg сказал:
Общее правило: класс возвращает данные, поэтому при вызове getUser ожидается получение пользовательских данных.Это не класс работы, чтобы выводить вещи (imo) - Ggg
Если вы не хотите использовать модуль try / catch, я предлагаю вам не выводить сообщение, когда оно происходит,но верните логическое значение или сообщение.По тем же причинам, что и выше: обрабатывать сообщения в одном месте.Например
<?php
class User{
public $_name;
public function getUser(){
if(empty($_GET)){
return 'no user found'
}
//do something else
return;
}
public function login(){
if(empty($_GET)){
return false
}
//do something else
return;
}
}
?>
И, наконец:
<?php
$user = new User();
echo $user->getUser();
// OR (and I think better):
if (!$user->login()) {
echo 'Invalid login';
}
?>