Мне нравится создавать мои функции PHP, используя пары ключ = > значение (массивы) в качестве аргументов вместо отдельных параметров.
Например, я предпочитаю:
function useless_func($params) {
if (!isset($params['text'])) { $params['text'] = "default text"; }
if (!isset($params['text2'])) { $params['text2'] = "default text2"; }
if (!isset($params['text3'])) { $params['text3'] = "default text3"; }
echo $params['text'].$params['text2'].$params['text3'];
return;
}
И мне не нравится:
function useless_func($text = "default text", $text2 = "default text2", $text3 = "default text3") {
echo $text.$text2.$text3;
return;
}
Я впервые видел, как это делалось так широко в кодовой базе Wordpress.
Причина, по которой я предпочитаю массивы:
- Аргументы функций могут предоставляться в любом порядке
- Легче читать код/более самостоятельно документировать (на мой взгляд)
- Менее подвержен ошибкам, потому что при вызове функции я должен исследовать правильные ключи массива
Я обсуждал это с сотрудником, и он говорит, что это бесполезно и просто приводит к дополнительному коду, и намного сложнее установить значения по умолчанию. В принципе, он не согласен со мной полностью по всем трем пунктам.
Я ищу некоторые общие рекомендации и рекомендации экспертов, которые могли бы дать представление: какой лучший или более правильный способ сделать это?