【发布时间】:2011-01-25 21:52:48
【问题描述】:
我正在构建一个用于国际化的语言类,我想动态访问属性(给出字符串名称),但在处理数组时我不知道该怎么做(这只是一个例子):
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() 函数动态访问数组的方法。
谢谢!
【问题讨论】:
标签: php object dynamic properties