Функционални аргументи по подразбиране в динамични езици

Динамичните езици за програмиране като цяло и в частност PHP ви позволяват да задавате стойности по подразбиране за параметри на функция и метод.

Можете да зададете стойности по подразбиране директно в списъка с параметри:

пример за функция ($foo =5, $bar ='test' ) // . >

Но тогава, в случай че е необходимо да се пропусне параметър (и точно за това са стойностите по подразбиране), програмистът е принуден да запомни каква е стойността по подразбиране за параметъра, който трябва да се пропусне, или да отвори документацията за конкретна функция. На практика това не е достатъчно удобно.

Следователно можете да направите друго: винаги използвайте null като формални стойности по подразбиране и инициализирайте реалните стойности по подразбиране вече във функцията:

пример за функция ($foo =null, $bar =null ) if (null === $foo) $foo =5 ; > if (null === $bar) $bar ='test' ; > // . >

След това, за да пропуснете всеки незадължителен параметър, ще бъде достатъчно да посочите унифицираната стойност null като негова стойност:

Ако функцията има твърде много параметри, има смисъл да се обмисли опцията за използване на именувани параметри като елементи на асоциативен масив, който е единственият (или последният от два или три задължителни или най-често използвани) формални функционални параметри:

пример за функция ($опции) $foo = array_key_exists('foo', $опции) ? $options['foo'] :5 ;

$bar = array_key_exists('bar', $options) ? $options['bar'] :'test' ;