Передача параметров в метод класса (PHP)

Форум для тех кто начинает осваивать язык php.
Аватара пользователя
Slash
Администратор
Сообщения: 2031
Поблагодарили: 62 раза

Передача параметров в метод класса (PHP)

Сообщение Slash » Сб ноя 05, 2016 10:26 am

Недавно мне потребовалось вставить языковые переменные, что находятся в массиве, в функции класса, то есть в методы, в некоторых методах необходимо использовать фразы. Массив фраз находится в отдельном файле и иклюдится к основному файлу, к которому инклюдятся многие файл, но суть не в этом, суть в том, что просто так в функцию не вставишь переменную, которая была создана за пределами функции, ее надо передавать. Как можно передать переменную в функции, рассказано в теме: Как передать переменную в пользовательскую функцию PHP, но примеры из этой темы мне не подошли, они скорее подойдут для одной функции, а не для несколько десятков методов...

Я решил написать функцию, которая будет передавать эти самые фразы, туда, куда надо. Сейчас расскажу, что я "намудрил". И так, допустим у нас есть массив фраз в отдельном файле:

Код: Выделить всё

$lang = array(
    'phrase_1' => 'Фраза 1',
    'phrase_2' => 'Фраза 2',
    'phrase_3' => 'Фраза 3'
);

Теперь пишем простенькую функцию:

Код: Выделить всё

function lang($key)
{
    global $lang;

    return $lang[$key];

Теперь в любом методе (или функции) можно получить любую фразу из массива по ключу, используя функцию lang(), вот так:

Код: Выделить всё

lang('phrase_1'); 

Пример вывода фразы на экран:

Код: Выделить всё

echo lang('phrase_3');

На экране будет фраз с ключом phrase_3:
Фраза 3

При необходимости функцию можно зарегистрировать, при помощи функции spl_autoload_register() - http://php.net/manual/ru/function.spl-a ... gister.php

Код: Выделить всё

spl_autoload_register('lang'); 
Реклама

Вернуться в «PHP»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость