2012-01-11 3 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];