- 添加isArrayDimFetch方法用于检查数组维度获取表达式 - 实现parseRightAssociativeAssign方法处理右结合赋值链 - 重构parseAssign方法以支持嵌套赋值表达式解析 - 更新parseArrayDimStore方法处理空维度读取错误 - 添加右结合赋值功能的测试用例和示例文件pull/1/head
parent
9465caea14
commit
1c074d140e
4 changed files with 126 additions and 25 deletions
@ -0,0 +1,9 @@ |
||||
<?php |
||||
$h = $i = $j = new stdClass(); |
||||
$h->val = $i->val = $j->val = 999; |
||||
|
||||
$h->val = 343; |
||||
var_dump($h); |
||||
var_dump($i); |
||||
var_dump($j); |
||||
|
||||
@ -0,0 +1,65 @@ |
||||
--TEST-- |
||||
right associative |
||||
--FILE-- |
||||
<?php |
||||
$a = $b = $c = 100; |
||||
var_dump($a); |
||||
var_dump($b); |
||||
var_dump($c); |
||||
|
||||
$d[] = $e[] = $f[] = 23; |
||||
var_dump($d); |
||||
var_dump($e); |
||||
var_dump($f); |
||||
|
||||
$h = $i = $j = new stdClass(); |
||||
$h->val = $i->val = $j->val = 999; |
||||
var_dump($h); |
||||
var_dump($i); |
||||
var_dump($j); |
||||
|
||||
$k['val'] = $l['val'] = $m['val'] = 888; |
||||
var_dump($k); |
||||
var_dump($l); |
||||
var_dump($m); |
||||
?> |
||||
--EXPECTF-- |
||||
int(100) |
||||
int(100) |
||||
int(100) |
||||
array(1) { |
||||
[0]=> |
||||
int(23) |
||||
} |
||||
array(1) { |
||||
[0]=> |
||||
int(23) |
||||
} |
||||
array(1) { |
||||
[0]=> |
||||
int(23) |
||||
} |
||||
object(stdClass)#1 (1) { |
||||
["val"]=> |
||||
int(999) |
||||
} |
||||
object(stdClass)#1 (1) { |
||||
["val"]=> |
||||
int(999) |
||||
} |
||||
object(stdClass)#1 (1) { |
||||
["val"]=> |
||||
int(999) |
||||
} |
||||
array(1) { |
||||
["val"]=> |
||||
int(888) |
||||
} |
||||
array(1) { |
||||
["val"]=> |
||||
int(888) |
||||
} |
||||
array(1) { |
||||
["val"]=> |
||||
int(888) |
||||
} |
||||
Loading…
Reference in new issue