fix(php): 修复赋值表达式作为右值时的解析错误

- 添加了对 Expr_Assign 和 Expr_AssignRef 节点类型的处理
- 验证赋值表达式的变量部分是否为有效变量表达式
- 当赋值表达式作为右值使用时确保其为变量赋值
- 添加了相应的错误提示信息
pull/1/head
韩天峰 7 months ago
parent e824c5d7c0
commit d1c56ee5d1
  1. 6
      src/Php/CompilerBase.php

@ -387,6 +387,12 @@ class CompilerBase extends \PhpAot\Core\Translator
return $this->parseScalar($expr);
case 'Expr_ConstFetch':
return $this->parseConstFetch($expr);
case 'Expr_Assign':
case 'Expr_AssignRef':
if (!$this->isVarExpr($expr->var)) {
$this->fatalError($expr, 'When an assignment expression serves as an rvalue, it must be an assignment of a variable');
}
return $this->parseExpr($expr);
default:
return $this->parseExpr($expr);
}

Loading…
Cancel
Save