За последние 24 часа нас посетили 60328 программистов и 1818 роботов. Сейчас ищут 2344 программиста ...

константы vs массив (оптимизация)

Тема в разделе "Прочие вопросы по PHP", создана пользователем party_animal, 22 фев 2008.

  1. party_animal

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

    С нами с:
    11 окт 2007
    Сообщения:
    6
    Симпатии:
    0
    Задача: Нужно создать language файл размером в несколько сотен (потенциально тысяч) фраз. Сейчас рассматриваю две возмодности для этого:

    Первая (константы):
    Код (Text):
    1. <?php
    2. define('LN_TEXT_WHATEVER', 'whatever');
    3. define('LN_TEXT_BLA_BLA_BLA', 'bla bla bla');
    4. ...
    5. ?>
    Вторая (массив):
    Код (Text):
    1. <?php
    2. global $ln_text_array;
    3.  
    4. $ln_text_array = array('whatever' => 'whatever',
    5. 'bla bla bla' => 'bla bla bla',
    6. ...);
    7. ?>
    Вопрос: Какая из этих возможностей более рациональна с точки зрения скорости доступа к фразам и использования памяти? Встречал разные мнения по этому вопросу. А что вы думаете?
     
  2. QQQ

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

    С нами с:
    21 ноя 2007
    Сообщения:
    538
    Симпатии:
    0
    константы
     
  3. Anonymous

    Anonymous Guest

    с точки зрения использования памяти - это абсолютно безразлично. Это не есть категория качества для кода локализации.
     
  4. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Массивы удобнее. Константу не изменить %)

    http://www.symfony-project.org/book/1_0 ... #Constants
     
  5. nimistar

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

    С нами с:
    30 май 2007
    Сообщения:
    919
    Симпатии:
    0
    а переберать разве масивы неудобнее ?
     
  6. Anonymous

    Anonymous Guest

    Ты не поверишь, но они для этого и придуманы ))))
     
  7. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Да ты прочитай лучше по моей ссылке =) Я то знаю, для чего они придуманы ;)
     
  8. Anonymous

    Anonymous Guest

    Жесть, однако.
     
  9. Clone

    Clone Guest

    Насколько я помню, при достаточно большом количестве языковых констант массив занимает в 1,5 раза меньше памяти чем константы. Плюс массив удобнее перебирать. Плюс иногда возникает ситуация, когда нужно подключать несколько языковых файлов. Поэтому лично я юзаю массив(который наполняется в языковых файлах) и приаттачиваю его по ссылке к шаблонизатору.
     
  10. Anonymous

    Anonymous Guest

    Clone, неа, константы занимают меньше памяти как раз. Но буквально процентов на 10.