PageUp
@PageUp
Default

Можно ли не прописывать переменные в функцию если их нет?

Здравствуйте, уважаемые кодеры. Подскажите, пожалуйста, можно ли игнорировать при вызове функции Function указание отсутствующих переменных? Раньше помню в лог ошибок постоянно это сыпалось, что функция в себя включает список скажем из 5 входящих переменных, а в нее передается только 3 или 2. Когда стал прописывать пустыми кавычками "", "", "", до нужного количества, ошибки эти пропали. Сейчас по логам такое не встречается. даже не знаю, то ли я устранил все это, то ли это больше не считается за ошибку. Так вот. К примеру есть функция
function delitem($iditem, $login, $kolvo, $linefile, $catalog, $effect34, $effect33)


В тех местах где пара эффектов передается, я прописываю значения effect34 и effect33
в тех местах где не нужно, я пишу "", "") и идут пустые данные.

Сейчас мне потребовалось для передачи добавить аж 5 новых переменных и они точно так же будут местами заполнены, местами нет. Могу ли я добавить нужные значения только в тех местах где эти переменные приобретают свойства, не добавляя кучу пустых кавычек в тех местах, где это не требуется?

Как это может сказаться на производительности и вообще. Не хочется просто теперь переписывать около 50 файлов, везде где встречается данная функция. что бы туда просто добавить после $effect34, $effect33 пустые кавычки. Надеюсь подробно объяснил и суть ясна, что я имею ввиду.
  • Вопрос задан
  • 111 просмотров
Решения вопроса 2
ну так задай параметры по дефолту
function delitem($iditem, $login, $kolvo, $linefile, $catalog, $effect34 = null, $effect33 = null)
Ответ написан
PageAuditRU
@PageAuditRU
Senior SEO Анализатор
Можно передавать в функцию в качестве параметра массив, в котором уже определять необходимые переменные:

function myFunc( $a, array $b = [ ] ) {
...
  ...$y = $b[ 'varY' ] ?? 'defaultValue';
...
}

myFunc( 1, [ 'var2' => 2, 'var3' => 3, ... 'varX' => 'X' ] );


Через массив передавать список только нужных переменных.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы