- 在 parseExpr 中添加对 replace 属性的检查 - 修改 coalesce 运算符的处理逻辑,避免重复函数调用 - 添加临时变量来存储 coalesce 表达式的结果 - 更新测试用例以验证正确的执行顺序和结果 - 添加新的测试用例验证 null 合并运算符行为 - 添加测试用例验证 ??= 运算符的链式赋值功能pull/1/head
parent
fdf7eb9765
commit
ecb7795243
4 changed files with 69 additions and 12 deletions
@ -0,0 +1,20 @@ |
||||
--TEST-- |
||||
Test ?? operator |
||||
--FILE-- |
||||
<?php |
||||
|
||||
function f($x) |
||||
{ |
||||
printf("%s(%d)\n", __FUNCTION__, $x); |
||||
return $x; |
||||
} |
||||
|
||||
function main() { |
||||
$a = f(null) ?? f(1) ?? f(2); |
||||
var_dump($a); |
||||
} |
||||
?> |
||||
--EXPECT-- |
||||
f(0) |
||||
f(1) |
||||
int(1) |
||||
@ -0,0 +1,28 @@ |
||||
--TEST-- |
||||
Test ?? operator |
||||
--FILE-- |
||||
<?php |
||||
function foo1() { |
||||
$c = 100; |
||||
$a ??= $b ??= $c; |
||||
var_dump($a, $b); |
||||
|
||||
} |
||||
|
||||
function foo2() { |
||||
$c = 100; |
||||
$b = 33; |
||||
$a ??= $b ??= $c; |
||||
var_dump($a, $b); |
||||
} |
||||
|
||||
function main() { |
||||
foo1(); |
||||
foo2(); |
||||
} |
||||
?> |
||||
--EXPECT-- |
||||
int(100) |
||||
int(100) |
||||
int(33) |
||||
int(33) |
||||
Loading…
Reference in new issue