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?

<?php

function prefixPaths($prefix_path, $paths) { }

// of

function prefixPaths($paths, $prefix_path) { }

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

Reageren