0

カテゴリリストを作成しています。20の異なるカテゴリをクリックしてカテゴリを送信すると、そのカテゴリを表す数値がデータベースに渡されます。

例えば:

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

データベースに数値を渡す理由は、Webページに複数の言語があり、異なるラベルファイルがあるためです。カテゴリ番号に基づいて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

調整された変数変数ドキュメントの例:

<?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 に答える