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;
?>
@Erwin,

In Delphi doe je het precies andersom:
<?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.
@SanThe, jij zou het dus zo doen?

<?php
if (true) {
return 'mijn_waarde';
} else {
return false;
}
?>

en niet zo?

<?php
if (true) {
$waarde = 'mijn_waarde';
} else {
$waarde = false;
}
return $waarde;
?>
@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.
Inderdaad, en niet alleen in Delphi (beter gezegd Pascal).

Ozzie, mijn voorkeur gaat ook uit naar de methode van SanThe.
Ozzie PHP op 15/08/2012 11:29:51

<?php
if (true) {
return 'mijn_waarde';
} else {
return false;
}
?>


In dit voorbeeld zou ik de else weghalen:

<?php
if (true) {
return 'mijn_waarde';
}
return false;
?>
SanThe, waarom zou je de else weghalen?
Ozzie PHP op 15/08/2012 12:39:45

SanThe, waarom zou je de else weghalen?


Die is nutteloos.
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.
- SanThe - op 15/08/2012 12:42:17

[quote="Ozzie PHP op 15/08/2012 12:39:45"]
SanThe, waarom zou je de else weghalen?


Die is nutteloos.
[/quote]
Maar het is toch een if else? Als niet dit... dan dat?

(Ik zie het wel vaker overigens hoor, maar vraag me af wat het nut precies is.)
- SanThe - op 15/08/2012 12:28:24

In dit voorbeeld zou ik de else weghalen:

<?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.

Reageren