В последнее время я много занимался программированием на Objective-C, и теперь, когда я возвращаюсь к PHP, я должен быть честным, я скучаю по названным параметрам (сначала я ненавидел их, теперь я их люблю иди разберись).
Во всяком случае, в PHP я иногда вижу, как люди передают массивы в функции как псевдо-способ именования параметров (с дополнительным преимуществом - не нужно беспокоиться о порядке), но иногда это усложняет написание функций. Кроме того, иногда я хочу вызвать функцию с именованными параметрами, но иногда это проще и быстрее не делать.
Кто-нибудь просто делает что-то вроде этого:
function calculateArea( $width, $height ) {
// do calculations here...
}
// and then call the function like so:
calculateArea( $width = 10, $height = 5 );
Кажется, это работает нормально, по крайней мере, с моей версией PHP, и мне интересно, используют ли другие люди эту технику в качестве обходного пути для именованных параметров. Мне также интересно, знает ли кто-нибудь о каких-то веских причинах, почему я не должен этого делать.
Спасибо!
UPDATE:
Спасибо за все быстрые ответы всем. Чтобы прояснить ситуацию, позвольте мне сказать, что я понимаю, что передача ассоциативного массива является лучшим вариантом в большинстве сценариев, но иногда вы работаете с функциями, которые вы уже написали, и не хотите менять способ их вызывается в каждой части вашего кода. Также иногда вы работаете со вторичной платформой и не можете контролировать, как была написана функция.
Если я смотрю на код, который я написал год назад, и вижу: echo $zc->expand('Foo', 'Bar', 10, 1, 0, null, null, array('class'=>'code'), false);
, это не очень полезно.
Итак, перефразируя мой вопрос, я в основном спрашиваю:
Иногда передача аргументов функции через присваивание легче для чтения. Каковы недостатки этого, и будет ли это работать во всех версиях PHP?