使用方法的返回值作为另一个对象的属性名称

时间:2018-08-20 20:20:49

标签: php mysql sql

我正在运行一个SQL查询,该查询将模板的占位符替换为取决于用户语言设置的值。如果他选择“ en_us”,那么我的php应该从替换表中选择“ en_us”列。现在我尝试了喜欢:

while($row = $result->fetch_object())
{
    $html = str_replace("{" . $row->origin . "}", $row->$user->getLanguage(), $html);
}

但是它不起作用。有谁知道如何实现这一目标? 方法$user->getLanguage()会返回一个包含“ en_us”的字符串。

我的HTML(仅是模板文件):

<head>

    <meta charset="{CHARSET}" />

    <base href="{BASE}" />
    <meta name="version" conent="{VERSION}" />

    <title>{TITLE}{TITLE_STD}</title>
    <meta name="description" content="{DESCRIPTION}" />
    <meta name="keywords" content="{KEYWORDS}" />

    <meta name="author" content="{AUTHOR}" />

    <link rel="favicon" href="{FAVICON}" />
    <meta name="theme-color" content="#2d2d2d" />

    <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Lato|Roboto|Montserrat" />
    <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons" />

    <link rel="stylesheet" href="/css/desk/core.css" />
    <link rel="stylesheet" href="/css/desk/header.css" />
    <link rel="stylesheet" href="/css/desk/aside.css" />
    <link rel="stylesheet" href="/css/desk/main.css" />
    <link rel="stylesheet" href="/css/desk/popups.css" />

    <script src="/js/jQuery/min.js"></script>
    <script src="/js/include.js"></script>

我的错误消息是: 可恢复的致命错误:类User的对象无法在...的第...行上转换为字符串。

1 个答案:

答案 0 :(得分:1)

如果我正确理解了您的问题,则需要先强制PHP取消引用$user->getLanguage(),然后在取消引用$row时使用该值。您可以像在数学表达式中使用括号一样简单地使用括号:

$row->{$user->getLanguage()}