Я считаю, что параметры в функции должны передаваться через ассоциативные массивы. Сравните сами:

$string = mb_substr($string, -1, 1, 'UTF-8');

и

$str = mb_substr(array(
  'string' => $str,
  'start' => -1, 
  'length' => 1,
  'encoding' => 'UTF-8'
));

и в PHP-6

$str = mb_substr([
  'string' => $str,
  'start' => -1, 
  'length' => 1,
  'encoding' => 'UTF-8'
]);

Но суть поста не в этом, а в том, как вырезать ненужные параметры из массива, чтобы потом сделать, например, extract.

$svn = array_intersect_key($svn,array_flip(array(
  'bin','url','username','password'
)));

Так гораздо понятнее. Один небольшой шажок в сторону самодокументируемого кода, который, однако, документацию не отменяет.

Вы, конечно, можете возразить, что первый способ самый короткий, и т.д. и т.п., но когда вы используете несколько ЯП, и возвращаетесь через некоторое время к функции, интерфейс которой не помните - вот тут-то жопа и начнется. 90% времени уйдет на просмотр справочников, повторное забывание интерфейса и повторные же просмотры. А если код чужой? И без документации? То-то же.


P.S. Присылайте криптовалюту если вам нравится то, что я делаю.
Если не нравится - тоже присылайте.
LTC (Litecoin): LLN6X2uV1iuQ1e4tdmQZsf2RRwh4pxPSej

Leave a Reply

*