Preporučujem ti da pročitaš "Code Complete" knjigu ako već nisi. Tamo možeš naći slične nedoumice i mnogo pravih korisnih saveta
U ovakvom primeru meni je svakako bolji prvi način i ja ga skoro uvek koristim, ali postoje nekada situacije kada koristim i drugi, pa ću dati primere...
Problem kod drugog primera je što se vrlo lako da desiti da odeš u duboko ugnježdavanje, a ovakav stil kao u prvom primeru baš to sprečava. Nepotrebno je praviti taj drugi else blok u kome će biti iskodirana cela procedura, jer uglavnom unutar tog else bloka će stajati još neki if i za čas ti ode početak linije na sredinu monitora.
Generalno, što imaš manje ugnježdenih blokova, to je kod čitljiviji. Mislim da je Ričard Stalman rekao da je dobar kod onaj koji nema više od 3 ugnježdena bloka.
Međutim, drugi stil bih koristio kada zaista trebam neke realne podatke stavim u tu promenjivu $status. Tvoj primer je dosta jednostavan, ali recimo, ovo je sada izmišljeni primer kada je potrebno pratiti takav stil:
PHP kôd:
function json_get_user() {
if(!empty($_POST['user_id'])) {
$user = UserFactory::getById($_POST['user_id']);
if(!empty($user)) {
$result['data'] = $user;
$result['status'] = 'ok';
} else {
$result['status'] = 'fail';
$result['msg'] = 'User not exists';
}
} else {
$result['status'] = 'fail';
$result['msg'] = 'There is no user id';
}
return json_decode($result);
}