我正在尝试使用一些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'];
}
}
答案 0 :(得分:3)
语法和连接断开。尝试:
$_SESSION['SELL_is_' . $damage_name];
$damage_name
答案 1 :(得分:1)
我认为你的意思是:
$_SESSION[constant("SELL_is_" . $damage_name)]
我假设SELL_is_是define
d常数(因为大写)。要获取定义的值,请使用全名,或使用constant
。
答案 2 :(得分:1)
$_SESSION[SELL_is_ . $damage_name . ];
应该是
$_SESSION["SELL_is_" . $damage_name];
答案 3 :(得分:0)
尝试:
if (isset($conditions[$row['type']]) && $_SESSION["SELL_is_$damage_name"] == 'y')