0

たとえば、次のコードを実行すると、cart.php?p = 1&action = add

<?php
session_start();

if (isset($_GET['p']) && isset($_GET['action'])) {
$p_id = (int)$_GET['p'];
$action = $_GET['action'];

switch($action) {

    case "add":
        $_SESSION['cart'][$p_id]++;
        echo $_SESSION['cart'][$p_id];//for debug
    break;

    case "remove":
        $_SESSION['cart'][$p_id]--;
        echo $_SESSION['cart'][$p_id];
        if($_SESSION['cart'][$p_id] == 0) unset($_SESSION['cart'][$p_id]);
    break;

    case "empty":
        unset($_SESSION['cart']);
    break;
}
}
?>

次のエラーが発生します。

Notice: Undefined offset: 1 in cart.php on line 11

PHP $ _SESSIONを正しく構成するにはどうすればよいですか?私

4

1 に答える 1

3

これを変える:

$_SESSION['cart'][$p_id]++

に:

$_SESSION['cart'][$p_id] = 1 + (isset($_SESSION['cart'][$p_id]) ? $_SESSION['cart'][$p_id] : 0);

配列内に存在しない要素をインクリメントしようとしないようにします。

于 2012-04-05T04:17:36.223 に答える