Я создаю класс Language для интернационализации, и я хотел бы получить динамический доступ к свойствам (с указанием имени строки), но я не знаю, как это сделать при работе с массивами (это только пример):
class Language {
public static $languages_cache = array();
public $index_header_title;
public $index = array(
"header" => array(
"title" => NULL
)
);
}
Теперь я добавляю такие языки:
Language::$languages_cache["en"] = new Language();
Language::$languages_cache["en"]->index_header_title = "Welcome!"; //setting variable
Language::$languages_cache["en"]->index["header"]["title"] = "Welcome!"; //setting array
Функция динамического доступа к элементам:
function _($member, $lang)
{
if (!property_exists('Language', $member))
return "";
return Language::$languages_cache[$lang]->$member;
}
Итак, элементы вывода:
echo _('index_header_title', "en"); //works
echo _('index["header"]["title"]', "en"); //does not work
Мне нужен способ динамического доступа к массивам ... для публичного и частного через функцию __set ().
Спасибо!