- 添加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