我已经搜索了一段时间,但是我只能找到分歧意见,其中一些意见非常令人困惑。
如果满足某些条件,返回消息的最佳实践是什么?
例如,如果没有设置$_GET
变量,我有一个要输出消息的类-这是类文件:
<?php
class User{
public $_name;
public function getUser(){
if(empty($_GET)){
echo 'There\'s no user!';
return;
}
//do something else
return;
}
}
?>
然后这是我正在使用该类的文件:
<?php
$user = new User();
$user->getUser();
?>
您现在可以看到,我正在echo
方法中使用getUser()
,但是我觉得这是非常糟糕的做法:(。因此,基本上有一种好的做法吗?只要它们有效就可以了;如果有良好的做法,可以请您解释一下为什么它比别人更好?
谢谢! :D
答案 0 :(得分:2)
最佳实践也取决于应用程序。
在您的示例中,我应该返回一个异常。 在应用程序的顶部,您可以运行try / catch来处理异常。
例如
find . -name *progre*
最后:
<?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();
}
?>
编辑:@Ggg所说的相同原因
一般的经验法则:一个类返回数据,所以当您一次调用getUser时, 它有望接收用户数据。回荡东西不是职业 (imo)– Ggg
如果您不想使用try / catch模块,建议不要在出现消息时回显该消息,而应返回布尔值或消息。基于上述相同的原因:在一个地方处理邮件。 例如
echo "<strong>". $exception->getMessage(). "</strong>";
最后:
<?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;
}
}
?>