【问题标题】:Undefined Offset Array [closed]未定义的偏移数组
【发布时间】:2014-08-25 09:11:55
【问题描述】:

当我运行这段代码时,我得到 Notice: Undefined offset: 3 On line 12 and 18. 12 and 18 with 在前面。

$_SESSION['basket'][3];

if(isset($_GET['action']) && $_GET['action'] == "add")
{
    if(isset($_GET['product_id']))
    {
        **$_SESSION['basket'][3] += 4;**
    }
    else
    {
        $_SESSION['basket'][3] += 1;

    }
}

【问题讨论】:

  • print_r($_SESSION) 的输出是什么?
  • 第 12 行和第 18 行是哪一个..
  • $_SESSION['basket'][3]; 行实际上根本没有任何事情
  • 只有当我第一次运行页面时,当我第一次运行后错误消失了。

标签: php arrays offset


【解决方案1】:

尝试在第三个索引处初始化值。

$_SESSION['basket'][3] = 0;

或者更好的解决方案是

$_SESSION['basket'][3] = isset($_SESSION['basket'][3]) ? $_SESSION['basket'][3] : 0;

而不仅仅是

$_SESSION['basket'][3];

【讨论】:

    【解决方案2】:

    问题是你没有初始化会话

    尝试像这样初始化它

    $_SESSION['baslet'][3] = 0;
    

    现在

    $_SESSION['basket'][3] += 4;
    

    这样试试

    $_SESSION['basket'][3] = intval($_SESSION['basket'][3]) + 4;
    

    最好总是在数学运算之前将数据转换为整数类型或浮点类型

    【讨论】:

    • 停止对我的回答投反对票@manwal
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-24
    • 2013-09-17
    相关资源
    最近更新 更多