0

Есть у меня несколько файлов с переводами, все они загружаются в зависимости от языковой сессии.

$lang = array(
    'lng_title'       => 'Привет мир',
    'lng_description' => '',
    'lng_keywords'    => '',
    'lng_index'       => 'На главную',
    'lng_back'        => 'Назад',
);

Но дело в том, что в большинстве файлов я не могу использовать этот массив. Что можно придумать?

4
  • 1
    Сделайте синглтон, который при первом вызове загружает эти данные в себя.
    – etki
    1 сен 2014 в 23:05
  • @Etki, а других вариантов нету?
    – Bastian
    1 сен 2014 в 23:08
  • Можете приложить структуру файлов, там где не работает и желательно порядок инклудов 28 авг 2017 в 14:11
  • Либо попробуйте сделать константу 28 авг 2017 в 14:12

2 ответа 2

1

Как вариант, делаешь класс-родителя (parrent.php), в его __construct пихаешь получение перевода:

class parrent {
   private $lang;

   function __construct(){
      $this->lang = get_session_lang();
   }
}

затем в child.php пользуешься )

class child extends parrent {
  function foo(){
    $title = $this->lang['title'];
  }
}
2
  • Процедурный вариант есть? Просто у меня скрипт из 4х файлов, и использовать классы там будет не разумно..
    – Bastian
    2 сен 2014 в 6:54
  • @Алексей Дорохов parrot с двумя r, parent с одной @Rnddev > Просто у меня скрипт из 4х файлов, и использовать классы там будет не разумно. c чего бы?
    – etki
    2 сен 2014 в 10:11
0

В скрипте, где хотите использовать массив, в верху скрипта пишите global $lang;

5
  • Если бы это работало, я бы, наверное, не создавал вопрос :)
    – Bastian
    2 сен 2014 в 6:55
  • @Rnddev, это старо, как шкура мамонта, но работает и до шестой версии будет работать наверняка. В методах и функциях своя область видимости, поэтому там тоже надо запускать global.
    – etki
    2 сен 2014 в 10:10
  • @Etki, использую вне методов и функций.
    – Bastian
    2 сен 2014 в 10:31
  • @Etki, даже так не работает: include './lang/ru.php'; global $lang; echo $lang['lng_index'];
    – Bastian
    2 сен 2014 в 10:33
  • @Rnddev, php 5.5.9, работает как с global, так и без. Вы уверены, что файл подключается, а ошибки не замутированы? У вас отсчет пути пойдет от cwd, а не от папки с текущим файлом.
    – etki
    2 сен 2014 в 13:06

Ваш ответ

By clicking “Отправить ответ”, you agree to our terms of service and acknowledge you have read our privacy policy.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками или задайте свой вопрос.