- 在 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