【问题标题】:Dynamic properties name in PHPPHP中的动态属性名称
【发布时间】:2015-07-27 02:16:54
【问题描述】:

PHP 中有一个名为 $item 的对象,在这个对象中我有

的属性
title , title_cn, title_tw

我想创建一个基于语言自动生成属性的函数,所以我这样编码:

<?= $item->title . set_lang(); ?>

以及功能:

function set_lang() {
    $CI =& get_instance();
    $lang = $CI->session->userdata('site_lang');
    if ($lang == "english") {
        return "";
    } else if ($lang == "zh_tw") {
        return "_tw";
    } else if ($lang == "zh_cn") {
        return "_cn";
    }
}

但是,名称没有正确生成,它只是 $item->title 附加的语言代码字符串,例如my title 1234_tw, titleABC_cn等等...

如何动态生成属性?感谢您的帮助

【问题讨论】:

  • 搜索变量变量
  • Var var 得到它们后很容易理解 ;P 但在这种情况下不需要它们,除非你想缩短代码使其更难理解;)

标签: php html string codeigniter object


【解决方案1】:

您应该首先将$item-&gt;title 连接到set_lang() 并将其放入变量中。

然后您可以使用该变量调用 obj 上的正确属性。

示例

$itemLangTitle = $item->title . set_lang();

echo $item->$itemLangTitle

您可以动态地将变量用作属性,但要像往常一样小心用户输入!

在旁注中,您还需要确保该属性存在,否则会出现错误。因此,请确保如果这没有产生任何结果,它应该回退到英文命名或通畅的东西;)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-12
    • 1970-01-01
    • 2012-08-21
    • 1970-01-01
    • 1970-01-01
    • 2013-01-29
    • 2016-10-21
    相关资源
    最近更新 更多