You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP变量操作代码报错修复请求:Unsupported operand types错误

问题修复方案

错误原因

  1. 字符串拼接运算符误用:你使用+=(算术加法运算符)拼接字符串,PHP中字符串拼接需用.或.=,+=会触发强制类型转换,当$_SESSION['order']为null时,就会抛出Unsupported operand types: null + string错误。
  2. SESSION变量未正确初始化:$_SESSION['order']首次使用时未定义,默认值为null,直接拼接会引发类型错误;$_SESSION['counter']每次页面加载都被重置为0,导致操作次数统计完全失效。

修复后的代码

<?php
session_start();

// 仅在counter未定义时初始化,避免每次页面加载重置统计数
if (!isset($_SESSION['counter'])) {
    $_SESSION['counter'] = 0;
}

// 初始化order为空字符串,避免null参与字符串拼接
if (!isset($_SESSION['order'])) {
    $_SESSION['order'] = '';
}

if (isset($_POST['id'])) {
    $id = strval($_POST['id']);
    
    // 处理首次追加逻辑,避免开头出现多余逗号
    if (!empty($_SESSION['order'])) {
        $_SESSION['order'] .= ',';
    }
    $_SESSION['order'] .= $id;
    
    echo $_SESSION['order'];
    $_SESSION['counter'] += 1;
}

echo '<br>' . $_SESSION['counter'];
?>

关键修复说明

  • 将$_SESSION['counter']=0改为仅当变量不存在时初始化,确保统计次数不会被页面刷新重置。
  • 提前初始化$_SESSION['order']为空字符串,从根源避免null类型参与字符串操作。
  • 用.=(字符串追加运算符)替代+=,正确实现字符串拼接逻辑。
  • 增加非空判断,防止首次追加时$_SESSION['order']开头出现多余逗号。

内容的提问来源于stack exchange,提问作者Łoś Łosiowski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 19:16:02