За последние 24 часа нас посетили 17725 программистов и 1733 робота. Сейчас ищут 1058 программистов ...

Как вызвать функцию, если значения по умолчанию не известны и нужно назначить лишь один параметр?

Тема в разделе "PHP для новичков", создана пользователем borus, 26 май 2016.

  1. borus

    borus Активный пользователь

    С нами с:
    16 апр 2012
    Сообщения:
    161
    Симпатии:
    0
    Здравствуйте!

    Есть определение функции, начинающееся так:
    Код (Text):
    1. function displayMediaThumb($imageArgs='',$lightbox=true,$effect="class='modal' rel='group'",$return = true,$withDescr = false,$absUrl = false, $width=0,$height=0){...
    Что надо написать, чтобы вызвать эту функцию со значениями всех параметров по умолчанию, за исключением предпоследнего параметра? При этом будем исходить, что я не знаю дефолтные величины, а только количество и последовательность параметров в описании функции.
    Можно ли примерно такое написать:
    Код (Text):
    1. displayMediaThumb(,,,,,,120,);
    либо такое:
    Код (Text):
    1. displayMediaThumb(default,default,default,default,default,default,120,default);
    ?
    Одним словом, можно ли в этой ситуации избежать прописывания дефолтных значений, задав только самый важный параметр?
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Просто передавай массив в один аргумент, там последовательность ключей не важна, можешь в этот один аргумент указать массив по умолчанию, но лучше склеивать массив который пришёл и по умолчанию. Чтоб просто дополнять и переписать значения по умлочанию.
     
  3. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Однажды будет можно
     
  4. NoMonster

    NoMonster Новичок

    С нами с:
    7 май 2016
    Сообщения:
    38
    Симпатии:
    1
    просто делаеш так
    PHP:
    1. function displayMediaThumb($config)
    2. if(!isset($config['name'])) {
    3. $config['name'] = null;
    4. }
    5. if(!isset($config['onKill'])) {
    6. $config['onKill'] = null;
    7. }
    8.  
    9.  
    10. }
    11.  
    12. displayMediaThumb([
    13. 'name' => 'Название',
    14. 'onKill' => 'file_2'
    15. ])
    и так последовательность основый важных стандарты чтобы дальше проверкой были....
     
  5. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Ещё вместо кучи ифов можно array_merge() использовать для дефолтных значений. очень удобно.
     
  6. Хыиуду

    Хыиуду Активный пользователь

    С нами с:
    3 июн 2014
    Сообщения:
    618
    Симпатии:
    5
    displayMediaThumb(,,,,,,120,) - c таким надо в Python :)