Door
Ozzie PHP
op 15-08-2012 08:40
gewijzigd op 15-08-2012 08:41
3.431 views
Beste,
Wat vinden jullie mooier / hoe doen jullie dit?
Stel je wil een waarde returnen. Als het goed gaat dan wordt de waarde gereturned en als het fout gaat dan wordt false gereturned. Nu vraag ik me af wat mooier is. Zowel in het "if" en het "else" gedeelte een return zetten? Of de waarde toekennen aan een variabele en eenmaal die variabele returnen buiten het if/else statement?
Om het wat duidelijker te maken... zou jij dit doen:
<?php
// hier hebben we dus 2x een return
if (true) {
return 'mijn_waarde';
} else {
return false;
}
?>
of dit:
<?php
// hier hebben we 1x een return
if (true) {
$waarde = 'mijn_waarde';
} else {
$waarde = false;
}
return $waarde;
?>
<?php //voor de kleurtjes
function TfrmMain.DoeIets(aName: string):boolean;
begin
result := false;
if aName <> '' then result := true;
end;
?>
Je moet daar dus ook vooraf bepalen wat je terug gaat geven, als je in het voorbeeld van result een string zou maken krijg je een heerlijke foutmelding.
@Ger,
Precies, je kan daar niet een default waarde aan het einde geven, maar inderdaad wel aan het begin. Op zich dus dezelfde methode. In elk geval scheelt het je voor elke uitzondering een aparte waarde ergens aan toe te moeten kennen. En daarbij kan je inderdaad niet zomaar iets geven, het type is al bepaald. Zoals overigens voor alle variabelen geldt in Delphi.
Ik persoonlijk probeer mijn return altijd uit te stellen naar het einde toe. Ik doe dit voornamelijk om de leesbaarheid te vergroten. Ik weet nu namelijk direct waar mijn return staat.
Sinds dit jaar volg ik ook hoger onderwijs, en daar verplicht men zelfs om de return op het einde te plaatsen. Wellicht om dezelfde reden: leesbaarheid.
<?php
if (true) {
return 'mijn_waarde';
}
return false;
?>
En dat is precies wat ik dus eerder al had.....
Ozzie, je kan de else weglaten, omdat als je de if in gaat, de executie er nooit meer uit zal komen. De return verhindert dat. Dat is wat ik bedoelde met het punt dat je de 'default' return aan het einde kan zetten. Is er geen eerdere return geweest, dan heb je de default nodig.