0

我正在创建一个类别列表.. 20 个不同的类别,当他们单击并发送一个类别时,它会将代表该类别的数值传递给数据库..

例如:

<option value="1">Apple</option>
<option value="2">Microsoft</option>

我在数据库中传递数值的原因是因为我在网页上有超过 1 种语言,并且我有不同的标签文件。我想根据类别编号回显一个 php 变量。

<? echo $ct_1; ?>

但为了避免大量 if/else 语句,我想知道是否可以将数字添加到变量中。因此,如果我将类别循环为:$row['category']我想将该变量添加到另一个变量中。像这样:

<? $category = $.'ct_'.$row['category']; echo $category; ?>

我知道这是不可能的。但我希望你能明白我的想法,也许有一个解决方案。

4

4 回答 4

4

这称为变量变量

$category = ${'ct_'.$row['category']};
echo $category;

要不就:

echo ${'ct_'.$row['category']};

     

于 2012-07-26T15:30:28.670 回答
3

量身定制的变量Docs示例:

<?php $category = 'ct_'.$row['category']; echo $$category; ?>

如果您仔细观察,它几乎与您的相同:

<?php $category = $.'ct_'.$row['category']; echo $category; ?>
                  ^                              ^
于 2012-07-26T15:30:40.803 回答
2

您可以使用 eval() 但这会导致一些非常大的安全漏洞。

我建议改用数组:

$ct = array(1 => "Apple", 2 => "Microsoft");
echo $ct[$row['category']];
于 2012-07-26T15:29:26.577 回答
0

快速而肮脏的方法是使用eval

eval('$category = $ct_'. $row['category'] . ';');
echo $category;

确保首先对输入进行消毒!

于 2012-07-26T15:28:46.607 回答