If 语句中的全局变量 - PHP
Global variables in If statements - PHP
我一直在寻找在 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 方法工作正常,我检查了那些,在我看来变量已更新但仅在本地更新并且不影响全局变量。
也许您期望 global 变量表示在请求之间持续存在的变量;他们不是这样的。全局只是一个变量,可以在您的代码中的任何地方访问对于该请求。正如 @user1231958 所述,您需要一个 cookie 或其他方式来保持状态。
我一直在寻找在 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 方法工作正常,我检查了那些,在我看来变量已更新但仅在本地更新并且不影响全局变量。
也许您期望 global 变量表示在请求之间持续存在的变量;他们不是这样的。全局只是一个变量,可以在您的代码中的任何地方访问对于该请求。正如 @user1231958 所述,您需要一个 cookie 或其他方式来保持状态。