Передача параметров в виде массива

Discussion in 'PHP' started by Dr1ver, 2 Apr 2011.

  1. Dr1ver

    Dr1ver Elder - Старейшина

    Joined:
    20 Aug 2008
    Messages:
    83
    Likes Received:
    80
    Reputations:
    14
    Что за мода новая пошла?
    раньше делали так, и все вроде были довольны
    /search?city=5&type=1
    а теперь вдруг решили в GET писать в виде массива.
    /search?search[city]=5&search[type]=1

    Может в этом есть что-то полезное?
     
    1 person likes this.
  2. Dr1ver

    Dr1ver Elder - Старейшина

    Joined:
    20 Aug 2008
    Messages:
    83
    Likes Received:
    80
    Reputations:
    14
    Ну вот другой пример на всем известном контакте.
    http://vkontakte.ru/search?c[age_from]=17&c[age_to]=18&c[name]=1&c[section]=people
    Просто часто стало попадаться такая структура передачи методом GET.
    А раз так делают, значит преследуют какие-то цели. Вот хотелось бы знать какие.
    Другими словами зачем делать запрос более длинным с использованием массива?
    Вместо скажем такой записи:
    http://vkontakte.ru/search?age_from=17&age_to=18&name=1&section=people
     
    #2 Dr1ver, 2 Apr 2011
    Last edited: 2 Apr 2011
  3. dr.Web

    dr.Web Member

    Joined:
    2 Feb 2009
    Messages:
    9
    Likes Received:
    22
    Reputations:
    10
    вообще тема чшь полная и не несёт смысловой нагрузки никакой.
    а так если по сабжу то это удобно, все данные в одном массиве. ненужно помнить название переменной.
     
  4. Dr1ver

    Dr1ver Elder - Старейшина

    Joined:
    20 Aug 2008
    Messages:
    83
    Likes Received:
    80
    Reputations:
    14
    $_CET, и так представляет собой массив, вполне удобный.

    PHP:
    <?php
    print_r
    ($_GET);
    ?>
    запрос http://site.ru/?name=1&age=2&city=3
    запрос http://site.ru/?massiv[name]=1&massiv[age]=2&massiv[city]=3
    register_globals = On или Off не важно.
     
    #4 Dr1ver, 2 Apr 2011
    Last edited: 2 Apr 2011
  5. dpe_x

    dpe_x Elder - Старейшина

    Joined:
    8 Sep 2010
    Messages:
    155
    Likes Received:
    35
    Reputations:
    14
    ребенку же понятнее что хранить данные в массиве намного удобнее и проще, чем в куче разных переменных..
     
  6. -=Zhenek=-

    -=Zhenek=- Elder - Старейшина

    Joined:
    31 Dec 2007
    Messages:
    271
    Likes Received:
    77
    Reputations:
    1
    На пост выше он написал, что Гет и так массив.
    А используя как в ВК получается в массиме Гет есть еще массив. Многоуровневый массив получается...

    +реально лишние символы в урле.
     
  7. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Dr1ver Это вопрос архитектуры приложения. В данных реализациях - разработчикам показался метод удачным.

    Например можно легко представить такой код:

    PHP:
    if (isset($_GET['search']))
    {
        foreach (
    $_GET['search'] as $key => $value)
        {
             
    // do smth
        
    }
    }
    else if (isset(
    $_GET['var']))
    {
        foreach (
    $_GET['var'] as $key => $value)
        {
             
    // do smth2
        
    }
    }
    При этом появляется возможность работы напрямую с массивами, с помощью функций array_intersect и прочих. Если бы писалось как обычно - то пришлось бы выделять из массива $_GET - нужные ключи, что не всегда является удачным.

    в какой момент это вам начало мешать на страницах не предназначенных для запоминания адреса? ЧПУ хорошо не везде
     
    _________________________
  8. Dr1ver

    Dr1ver Elder - Старейшина

    Joined:
    20 Aug 2008
    Messages:
    83
    Likes Received:
    80
    Reputations:
    14
    Да, это имеет смысл, когда параметры нужно сгруппировать в два и более массивов, а с одним массивом смысла не вижу.

    Можно только предполагать что другие массивы недоступны для пользователей, но мне так не кажется.
     
    #8 Dr1ver, 3 Apr 2011
    Last edited: 3 Apr 2011
  9. bxN5

    bxN5 Elder - Старейшина

    Joined:
    8 Jan 2006
    Messages:
    687
    Likes Received:
    138
    Reputations:
    32
    да я и раньше довольно часто встречал параметры в виде массивов, кому как кажется лучше