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

如何解决PHP中出现的unexpected '=', expecting ')'语法错误?

问题根源

这个语法错误的核心原因是:PHP版本低于5.5.0时,empty()不支持将赋值表达式作为参数传入。empty()是PHP的语言结构而非普通函数,早期版本的PHP解析器不允许在empty()的参数位置使用赋值操作(=),会将这个赋值符号识别为非法语法。

修复方案

将赋值操作与empty()判断拆分,先执行赋值,再对变量进行空值检查。这样既兼容所有PHP版本,也让代码逻辑更清晰。

修复后的完整代码片段:

if (!empty($this->request->post['refresh']) && !empty($this->request->post['novaposhta_key'])) {
    // 先执行赋值操作
    $city_result = $this->model_module_novapochta->getCity($this->request->post['novaposhta_key']);
    if (!empty($city_result)) {
        $this->session->data['error'] = $city_result;
    } else {
        // 同样拆分地址查询的赋值与判断
        $address_result = $this->model_module_novapochta->getAdress($this->request->post['novaposhta_key']);
        if (!empty($address_result)) {
            $this->session->data['error'] = $address_result;
        }
    }
};
补充说明

如果你的PHP版本是5.5.0及以上,语法上允许在empty()中使用表达式(包括赋值),但拆分赋值与判断的写法兼容性更强,也更符合代码可读性规范,建议优先采用。

内容的提问来源于stack exchange,提问作者Roman Novyk

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 08:02:02