编写这样的PHP代码的最佳实践是什么
这段代码来自我的Kohana项目。如何让它更漂亮? 我应该改用try-catch吗?如何不写两次exit()编写这样的PHP代码的最佳实践是什么,php,Php,这段代码来自我的Kohana项目。如何让它更漂亮? 我应该改用try-catch吗?如何不写两次exit() public function action_index() { $id = $this->request->query('id'); if (!empty($id)) { $ticket = ORM::factory('ticket') ->where('id', '=', $id) -&
public function action_index()
{
$id = $this->request->query('id');
if (!empty($id)) {
$ticket = ORM::factory('ticket')
->where('id', '=', $id)
->find();
if (!empty($ticket)) {
$event = ORM::factory('event')
->where('id', '=', $ticket->event_id)
->find();
if (!empty($event)) {
$this->template->ticket = $ticket->id;
$this->template->name = $ticket->name;
$this->template->event = $event->title;
} else {
exit();
}
} else {
exit();
}
}
}
这种风格的代码更具可读性(IMHO):
public function action_index()
{
$id = $this->request->query('id');
if (empty($id)) {
return; //or exit() if you really need it
}
$ticket = ORM::factory('ticket')
->where('id', '=', $id)
->find();
if (empty($ticket)) {
return; //or exit() if you really need it
}
$event = ORM::factory('event')
->where('id', '=', $ticket->event_id)
->find();
if (empty($event)) {
return; //or exit() if you really need it
}
$this->template->ticket = $ticket->id;
$this->template->name = $ticket->name;
$this->template->event = $event->title;
}
我通常不使用if语句的单行形式,但在这种情况下,我认为它们对可读性有很大帮助
public function action_index(){
$id = $this->request->query('id');
if (empty($id)) return;
$ticket = ORM::factory('ticket')
->where('id', '=', $id)
->find();
if (empty($ticket)) exit();
$event = ORM::factory('event')
->where('id', '=', $ticket->event_id)
->find();
if (empty($event)) exit();
$this->template->ticket = $ticket->id;
$this->template->name = $ticket->name;
$this->template->event = $event->title;
}
你可以试着问一下这个。