2015-01-02 3 views
0

IF 문에서 전역 변수를 사용하는 예를 찾고 있었지만 몇 가지 발견했지만 여전히 작동하도록 코드를 만들 수 없습니다. 변수를 전역 적으로 선언하고 if 문 내부에 값을 할당하고 나중에 변수가 특정 값을 포함하는지 확인하려고했습니다. 변수를 에코 할 때 if 문 내에서 할당하는 값으로 업데이트되지 않습니다. 내 코드 :If 문에서 전역 변수 -

<?php 
    $cart = 0; 

    if ((isset($_POST["b1"]) && $_POST["b1"] === "Add to cart")) { 
     global $cart; 
     $cart = 1; 
     $query_HOD = "INSERT INTO orderLine 
         (LINE_ID, PRODUCT_ID, QUANTITY, AMOUNT) 
         VALUES 
         ('LINE1', '00001', 1, 6.99)"; 

     if ((isset($_POST["add"]) && $_POST["add"] === "Go to cart")) { 
      echo $cart; 
      if($cart === 1) { 
       echo $cart; 
       header("location:cart.php"); 
      } 
      else { 
       echo "<script type='text/javascript'>alert('Your cart is empty');</script>"; 
      } 
     } 
?> 

는 isset 방법이 잘 작동, 나는 변수는 로컬 업데이트되지만 나에게 보인다 글로벌 변수에 영향을주지 않습니다, 사람들을 확인했다.

+0

if 코드 외부에서 전역을 정의해야하지 않습니까? 게다가 당신이 쿠키로 대신 일해야한다는 느낌이 들었습니다. –

+0

나는 그걸 똑같은 결과로 시도해 봤지만 조금 더 정교 할 수있어 왜 쿠키로 대신해야합니까? –

답변

3

변수는 요청간에 지속되는 변수를 의미 할 것입니다. 그건 그들이하는 것이 아닙니다. 전역 변수는 해당 코드의 코드 에 액세스 할 수있는 변수입니다. @ user1231958에 명시된 바와 같이 쿠키 또는 다른 방법으로 상태를 유지할 수 있습니다.

+0

이 단계에서 원하는 모든 옵션을 선택했는지 확인한 다음 카트로 이동하면 간단한 확인 메커니즘으로 간주됩니다. 쿠키를 사용하여이를 달성 할 수 있습니까? –

+2

"세션"(한 사용자에 대한 요청 순서) 내에 물건을 저장하려면 PHP 세션을 사용하십시오. 세션 ID 쿠키가 전달 될 것이고, $ _SESSION [ "cart"] = "1"'과'if ($ _SESSION [ "cart"] == "1")' . – Jacob

+1

Jacob, 다른 사용자의 쿠키에 간단한 예를 추가하는 것이 좋습니다. 그리고 Joe는 전역 변수가 영구하지 않습니다. 일단 요청이 끝나면 (즉, 웹 사이트가로드 된 경우) 변수가 사라집니다. 쿠키를 원하고 세션간에 저장되는 쿠키가 필요한 이유입니다 (데이터베이스에서 작업을 지속해야 할 수도 있습니다). –