volgorde parameters
Ola,
Als je zelf een functie maakt, heb je dan een logische volgorde voor de parameters, of is de volgorde willekeurig?
Bijvoorbeeld, je hebt een functie/method die een array met paths prefixt.
Welke parameter komt dan als eerst? Wat heeft de voorkeur? Of maakt het niks uit?
Als je zelf een functie maakt, heb je dan een logische volgorde voor de parameters, of is de volgorde willekeurig?
Bijvoorbeeld, je hebt een functie/method die een array met paths prefixt.
Welke parameter komt dan als eerst? Wat heeft de voorkeur? Of maakt het niks uit?
Eigen voorkeur, maar dat had je zelf ook wel kunnnen bedenken.
Gelukkig niet op alfabet ;-)
@Wouter: Dat is maar de vraag. Misschien zijn er mensen die een bepaalde "methode" hanteren. Die bijvoorbeeld altijd de verzameling (in dit geval de $paths array) als laatste zetten of juist als 1e. Jij zegt nu eigenlijk dat het jou dus niet uitmaakt. En dat betekent dat er bij jou dit zou kunnen gebeuren:
Dat lijkt me niet echt handig. Moet je telkens de functie/method erbij pakken om te kijken wat het ook alweer was.
@Aar: hoe doe jij het dan als je het niet op alfabet doet :) Heb jij een bepaalde "manier"?
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
function prefixPaths($prefix_path, $paths) { }
function prefixUrls ($urls, $prefix_url) { }
?>
function prefixPaths($prefix_path, $paths) { }
function prefixUrls ($urls, $prefix_url) { }
?>
Dat lijkt me niet echt handig. Moet je telkens de functie/method erbij pakken om te kijken wat het ook alweer was.
@Aar: hoe doe jij het dan als je het niet op alfabet doet :) Heb jij een bepaalde "manier"?
er is één regel maar die wisten jullie allang:
eerst verplichte parameters en dan optionele parameters
daarnaast hou ik en ik denk velen van ons onbewust een volgorde van belangrijkheid aan.
en de reden daartoe heeft ook weer met die optionele parameters te maken.
voorbeeld:
nu is de id verplicht en de andere twee zijn optioneel maar de label wordt bijna altijd meegegeven en de options zijn alleen voor zeer specifieke doeleinden en zullen vaak niet meegegeven worden. stel dat je label en options nu zou omdraaien dan krijg je dit:
maar negen van de tien keer als je dus de functie gaat aanroepen krijg je dan dit:
eerst verplichte parameters en dan optionele parameters
daarnaast hou ik en ik denk velen van ons onbewust een volgorde van belangrijkheid aan.
en de reden daartoe heeft ook weer met die optionele parameters te maken.
voorbeeld:
nu is de id verplicht en de andere twee zijn optioneel maar de label wordt bijna altijd meegegeven en de options zijn alleen voor zeer specifieke doeleinden en zullen vaak niet meegegeven worden. stel dat je label en options nu zou omdraaien dan krijg je dit:
maar negen van de tien keer als je dus de functie gaat aanroepen krijg je dan dit:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
addFormfield('name', null, 'Uw naam:');
// terwijl dit wat korter is en vriendelijker oogt:
addFormfield('name', 'Uw naam:');
?>
addFormfield('name', null, 'Uw naam:');
// terwijl dit wat korter is en vriendelijker oogt:
addFormfield('name', 'Uw naam:');
?>
Gewijzigd op 17/10/2013 01:27:09 door Frank Nietbelangrijk
Ik doe het gewoon vaak random, maar de belangrijke parameters doe ik eerst...
Frank, correct!
"eerst verplichte parameters en dan optionele parameters"
Deze regel ken ik inderdaad. Maar in het voorbeeldje wat ik noemde, is het wat lastiger. Beide parameters zijn verplicht en er zijn geen optionele parameters. Wat zet je dan als eerst? Het is handig om daar een soort "systeem" voor te hebben, zodat je a) overal het op dezelfde manier doet (consistentie) en b) je niet eerst de functie hoeft te bekijken om te achterhalen wat de volgorde van de paramters is.
Toevoeging op 17/10/2013 01:13:05:
En wat is dan voor jou (in mijn voorbeeld) de belangsrijkste parameter?
"eerst verplichte parameters en dan optionele parameters"
Deze regel ken ik inderdaad. Maar in het voorbeeldje wat ik noemde, is het wat lastiger. Beide parameters zijn verplicht en er zijn geen optionele parameters. Wat zet je dan als eerst? Het is handig om daar een soort "systeem" voor te hebben, zodat je a) overal het op dezelfde manier doet (consistentie) en b) je niet eerst de functie hoeft te bekijken om te achterhalen wat de volgorde van de paramters is.
Toevoeging op 17/10/2013 01:13:05:
- Aar - op 17/10/2013 01:11:07:
Ik doe het gewoon vaak random, maar de belangrijke parameters doe ik eerst...
En wat is dan voor jou (in mijn voorbeeld) de belangsrijkste parameter?
Ozzie ik ben een beetje aan het gissen wat jouw functie voor taak heeft maar ik denk de elementen in de array voorzien van een prefix. bij het verlaten van de functie geef je dan weer een array met paths terug stel ik me zo voor..
dan zou ik de array paths als eerste nemen want dat zou je dan kunnen zien als het 'onderwerp' en dat zijn de gegevens waar iets mee gebeuren gaat. Maar ja het blijft natuurlijk persoonlijk want er zijn geen wetten voor
dan zou ik de array paths als eerste nemen want dat zou je dan kunnen zien als het 'onderwerp' en dat zijn de gegevens waar iets mee gebeuren gaat. Maar ja het blijft natuurlijk persoonlijk want er zijn geen wetten voor
Frank Nietbelangrijk op 17/10/2013 01:17:52:
Ozzie ik ben een beetje aan het gissen wat jouw functie voor taak heeft maar ik denk de elementen in de array voorzien van een prefix. bij het verlaten van de functie geef je dan weer een array met paths terug stel ik me zo voor..
Exact!
Frank Nietbelangrijk op 17/10/2013 01:17:52:
dan zou ik de array paths als eerste nemen want dat zou je dan kunnen zien als het 'onderwerp' en dat zijn de gegevens waar iets mee gebeuren gaat. Maar ja het blijft natuurlijk persoonlijk want er zijn geen wetten voor
Hmmm, ja... lastig. Dat is inderdaad een redenatie die zou kunnen. Je zou ook kunnen zeggen dat $private_path de constante factor is voor alle paden en dus "belangrijker" is. Ik vind het lastig :(
ik ga er iig geen nacht aan besteden want daar hebben we het nachtBRAKERs topic voor, toch?
Hehe, nou dat is volgens mij ook al maanden dicht ;)
Naja... ik vind het wel jammer... ik ga er nog maar effe over nadenken. Als iemand nog tips heeft hoor ik het (hoop ik) wel.
Naja... ik vind het wel jammer... ik ga er nog maar effe over nadenken. Als iemand nog tips heeft hoor ik het (hoop ik) wel.
Doe gewoon wat wilt en hou je het in je project een beetje constant. Als je hier al nachten over gaat nadenken komt je framework nooit af.
Overigens wat leuke side weetjes:
Voor php5.6 staat omder andere named parameters en skipped parameters op de planning. Dat laatste zorgt ervoor dat je optionele parameters makkelijk kunt skippen doormiddel van het default keyword. Dat betekend dat je niet perse de verplichte voor de optionele parameters moet doen.
De eerste rfc zorgt ervoor dat de volgorde niks meer uitmaakt, omdat je parameters bij naam instelt.
Overigens wat leuke side weetjes:
Voor php5.6 staat omder andere named parameters en skipped parameters op de planning. Dat laatste zorgt ervoor dat je optionele parameters makkelijk kunt skippen doormiddel van het default keyword. Dat betekend dat je niet perse de verplichte voor de optionele parameters moet doen.
De eerste rfc zorgt ervoor dat de volgorde niks meer uitmaakt, omdat je parameters bij naam instelt.
Ozzie PHP op 17/10/2013 00:42:31:
Dat lijkt me niet echt handig. Moet je telkens de functie/method erbij pakken om te kijken wat het ook alweer was.
Een goede IDE lost dit op. Zeker als je PHPDoc gebruikt.
php is zelf niet al te consequent wat de volgorde betreft.
bv. het is niet altijd eerst $needle en daarna $haystack.
Die named parameters lijken me wel iets.
Dat lijkt dan vrij hard op het doorgeven van 1 options-array (of object) aan een functie.
Kan je vandaag al perfect zelf maken.
In javascript komt dat al wat vaker voor. bv. jQuery's $.ajax geef je 1 options parameter mee in object-vorm, terwijl je bij $.post verschillende parameters in de juiste volgorde moet zetten
Ik kies altijd voor die object-notatie, al is het maar omdat ik gemakkelijker de key onthoud dan de volgorde.
bv. het is niet altijd eerst $needle en daarna $haystack.
Die named parameters lijken me wel iets.
Dat lijkt dan vrij hard op het doorgeven van 1 options-array (of object) aan een functie.
Kan je vandaag al perfect zelf maken.
In javascript komt dat al wat vaker voor. bv. jQuery's $.ajax geef je 1 options parameter mee in object-vorm, terwijl je bij $.post verschillende parameters in de juiste volgorde moet zetten
Ik kies altijd voor die object-notatie, al is het maar omdat ik gemakkelijker de key onthoud dan de volgorde.
Gewijzigd op 17/10/2013 09:42:52 door Kris Peeters




