我正在使用PHP和PDO从数据库中获取数据,但是我尝试将对象与语言变量混合时遇到了一些问题。
有不同的语言,所以我必须使用带语言的变量,请记住可能有任何语言,这就是为什么我必须使用变量。
查询工作正常,它使用语言从DB获取值,但不能回显。
请帮忙!
$language = en;
// Do select from DB
$sql_query = $db_data->prepare("SELECT id, image, ".$language."_description FROM table");
$sql_query->execute();
while($data = $sql_query->fetch(PDO::FETCH_OBJ)){
echo $data->image; // works perfect!
echo $data->$language."_description"; // this does not work, this is what i need
}
答案 0 :(得分:3)
我想你不想要这个:
echo ($data->$language) . ("_description");
......但是这个:
echo $data->{$language."_description"};
为了戏剧性的目的,添加了括号。该功能称为variable properties。
当您阅读不存在的方法属性时,您可以获得Undefined property
通知以轻松发现错误。由于您没有,我建议您查看错误报告设置。
此外,您可以使用var_dump()检查变量。