使用数组设置变量名


Using an array to set variable name

我试图在创建变量名的一部分时使用一些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'];
        }
    }

不完整的语法和连接。尝试:

$_SESSION['SELL_is_' . $damage_name];
  • 需要对SELL_is_进行报价
  • $damage_name之后有一个额外的串联运算符
  • 在右方括号后多加一个分号

我想你的意思是:

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

我假设SELL_is_是一个defined常数(因为大写)。要获取define的值,请使用全名或使用constant

$_SESSION[SELL_is_ . $damage_name . ]; 

应该是

$_SESSION["SELL_is_" . $damage_name];

try:

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