2012-01-11 17 views
2

私は変数名の一部を作成する際にいくつかのmysqlデータを使って、他の場所で既に宣言されている別の変数を参照しようとしています。基本的に$ damage_nameをif文のブールチェックの一部にする方法はありますか?配列を使用して変数名を設定する

$conditions = array(
     'bent_num' => 0, 
     'spine_torn' => 0, 
     'pages_torn' => 0, 
     'water_damage' => 0, 
     'pages_highlighted' => 0, 
     'pages_noted' => 0, 
     'taped' => 0, 
     'stained' => 0, 
     'mold' => 0, 
     'scratched' => 0 
     ); 
    while ($row = mysql_fetch_assoc($res)) 
    {   
     $damage_name = $conditions[$row['type']]; 

     if (isset($conditions[$row['type']]) && $_SESSION[SELL_is_ . $damage_name . ]; == 'y') 
     { 
      $condition_score = $condition_score - $row['value']; 
     } 
    } 

答えて

3

壊れた構文と連結。試してみてください:

$_SESSION['SELL_is_' . $damage_name]; 
  • SELL_is_が引用される必要があります。
  • $damage_nameの後に
  • の後に余分な連結演算子があります。閉じた角括弧の後ろにセミコロンが追加されています。
+0

ああ素晴らしい感謝する必要があります –

1

私はあなたが意味を考える:

$_SESSION[constant("SELL_is_" . $damage_name)] 

私は(理由総額の)SELL_is_がdefine dは一定であると仮定しています。定義の値を取得するには、フルネームを使用するか、constantを使用します。

0

試してみてください。

if (isset($conditions[$row['type']]) && $_SESSION["SELL_is_$damage_name"] == 'y') 
1
$_SESSION[SELL_is_ . $damage_name . ]; 

$_SESSION["SELL_is_" . $damage_name]; 
関連する問題