feat(php): 添加按位或赋值操作符支持

- 在 CompilerBase.php 中添加 Expr_AssignOp_BitwiseOr 的解析处理
- 实现 parseAssignOpBitwiseOr 方法处理 |= 操作符
- 添加相应的单元测试文件 assignop_bitwiseor.phpt 验证功能
pull/1/head
韩天峰 4 months ago
parent 26dfc99094
commit 17f4d14940
  1. 7
      src/Php/CompilerBase.php
  2. 13
      tests/aot/operator/assignop_bitwiseor.phpt

@ -390,6 +390,8 @@ class CompilerBase extends \PhpAot\Core\Translator
return $this->parseAssignOpShiftRight($expr);
case 'Expr_AssignOp_BitwiseAnd':
return $this->parseAssignOpBitwiseAnd($expr);
case 'Expr_AssignOp_BitwiseOr':
return $this->parseAssignOpBitwiseOr($expr);
case 'Expr_AssignOp_BitwiseXor':
return $this->parseAssignOpBitwiseXor($expr);
case 'Expr_AssignOp_Pow':
@ -2235,6 +2237,11 @@ class CompilerBase extends \PhpAot\Core\Translator
return $this->parseAssignOp($expr, '&=');
}
private function parseAssignOpBitwiseOr(Expr\AssignOp\BitwiseOr $expr): string
{
return $this->parseAssignOp($expr, '|=');
}
protected function parseAssignOpPow(Expr\AssignOp\Pow $expr): string
{
return $this->parseAssignOp($expr, '**=');

@ -0,0 +1,13 @@
--TEST--
Operator: AssignOp BitwiseOr
--FILE--
<?php
function main()
{
$a = 100;
$a |= 16;
var_dump($a);
}
?>
--EXPECT--
int(116)
Loading…
Cancel
Save