动态方法名称

TheNiceGuy

首先,对标题感到抱歉,但我不知道该如何命名。

假设我有这样的内容:

$lang = new lang;
$lang->setLanguage('en');
$string = $lang->get('Willkommen');

例如,这将输出Welcome

但是我想要的是:

$lang = new lang;
$lang->setLanguage->en
$string = $lang->get->Willkommen

如您所想,这还应该输出Welcome

用命令的话,我想要相同的结果,但不必将参数传递给实例。

我搜索了很长时间,但是找不到我该怎么做。

替代性爱丽丝

听起来您正在寻找__get magic方法

class lang {
    var $language = 'en';

    function __get($prop) {
        if ($prop == 'Willkommen') {
            if ($this->language == 'en') return 'Welcome';
            else if ($this->language == 'fr') return 'Bonjour';
        }
    }

    function __set($prop, $val) {
        if ($prop == 'language') $this->language = $val;
    }
}

$lang = new lang();
echo $lang->Willkommen; // Prints "Welcome"
$lang->language = 'fr';
echo $lang->Willkommen; // Prints "Bonjour"

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章