如何解决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
相关产品推荐
相关产品推荐

