ФорумПрограммированиеPHP для идиотов → Как извлечь значение элемента массива через $GLOBALS[]

Как извлечь значение элемента массива через $GLOBALS[]

  • smackthat

    Сообщения: 464 Репутация: N Группа: Адекваты

    Spritz 9 марта 2009 г. 7:58

    Привет. Вот такая ситуяция:

    // languages list
    $languageList=array(0=>'Русский',1=>'Украинский',2=>'Английский');

    Определил массив, теперь хочу обратиться в своей функции:

    function myFunc($language_index)
    {
    print "язык={$GLOBALS[ ????????? ]}<br/>");
    }

    Как это сделать?
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 9 марта 2009 г. 8:03, спустя 4 минуты 53 секунды


    // languages list
    $languageList=array(0=>'Русский',1=>'Украинский',2=>'Английский');
    $GLOBALS['langs'] = $languageList;



    function myFunc($language_index)
    {
       print "язык={$GLOBALS['langs'][$language_index]}<br/>");
    }


    global зло
  • smackthat

    Сообщения: 464 Репутация: N Группа: Адекваты

    Spritz 9 марта 2009 г. 8:12, спустя 8 минут 59 секунд

    спасибо, а почему зло? как бы ты поступил в такой ситуации?
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 9 марта 2009 г. 8:38, спустя 26 минут 15 секунд

    сложил бы языки в ини файлы, создал бы класс который переводит
    типа
    [admin]
    edit_key = 'Редактировать ключ %s';


    language::get('russian', 'admin', 'edit_key', 'super Key!'); // Редактировать ключ super Key!


    хз, мб чтото типа такого
  • smackthat

    Сообщения: 464 Репутация: N Группа: Адекваты

    Spritz 9 марта 2009 г. 9:25, спустя 46 минут 41 секунду

    ок, а чем через глобальные плохо? небезопасно или что?
  • phpdude

    Сообщения: 26645 Репутация: N Группа: в ухо

    Spritz 9 марта 2009 г. 10:06, спустя 41 минуту 24 секунды

    smackthat, это панацея которой поклоняется айви
    Сапожник без сапог
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 9 марта 2009 г. 10:18, спустя 11 минут 26 секунд

    ))
  • Timur

    Сообщения: 1068 Репутация: N Группа: Джедаи

    Spritz 9 марта 2009 г. 10:19, спустя 1 минуту 10 секунд

    из книги "Правила программирования на Си и Си++" (Ален И. Голуб)
    56. Не захламляйте область глобальных имен
    Беспорядок в области глобальных имен является характерной проблемой  для среды групповой разработки. Вам не очень понравится спрашивать разрешение от каждого участника группы каждый раз, когда вы вводите новый идентификатор. Поэтому:
    • Локальная переменная всегда более предпочтительна, чем член класса.
    • Член класса всегда более предпочтителен, чем статическая глобальная переменная.
    • Статическая глобальная переменная всегда более предпочтительна, чем настоящая глобальная переменная.
  • phpdude

    Сообщения: 26645 Репутация: N Группа: в ухо

    Spritz 9 марта 2009 г. 10:29, спустя 9 минут 44 секунды

    Timur, ебать в рот! но айви все равно этой панацеи поклоняется, как и весь хабрахабр
    Сапожник без сапог
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 9 марта 2009 г. 10:42, спустя 13 минут 17 секунд

    ну да, и чо? ничему я не покланаюсь, просто предпочитаю не юзать и пох
  • smackthat

    Сообщения: 464 Репутация: N Группа: Адекваты

    Spritz 9 марта 2009 г. 10:54, спустя 12 минут 4 секунды

    хорошо, доустим у меня есть асоциативный массив категорий, допустим: спорт, политика и так далее. Всего допустим 100 категорий. И что мне в каждой функции создавать этот массив заново? Массив используется как хранилище констант и строк им соответствующих. Как же решить мою проблему без глобального массива, более грамотно?
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 9 марта 2009 г. 10:59, спустя 4 минуты 57 секунд

    паттерн регистри
  • smackthat

    Сообщения: 464 Репутация: N Группа: Адекваты

    Spritz 9 марта 2009 г. 11:10, спустя 10 минут 50 секунд

    а что это такое?
  • Lirck

    Сообщения: 1658 Репутация: N Группа: Джедаи

    Spritz 9 марта 2009 г. 11:12, спустя 2 минуты 29 секунд

    http://mabp.kiev.ua/2007/02/22/pattern_registry/

    короче юзай глобалс…

Пожалуйста, авторизуйтесь, чтобы написать комментарий!