📄 bug29493.phpt
字号:
--TEST--Bug #29493 (extract(EXTR_REFS) fails if array has multiple referrals)--FILE--<?phpfunction t1(){ $a = array('foo' => 'aaa'); // refcount($a) = 1 // refcount($a['foo']) = 1 $b = $a; // refcount($a) = 2 // refcount($a['foo']) = 1 $b['foo'] = 'bbb'; // refcount($a) = 1 // refcount($a['foo']) = 1 var_dump($a, $b); extract($a, EXTR_REFS); $foo = 'noo'; var_dump($a, $b);}function t2(){ $a = array('foo' => 'aaa'); // refcount($a) = 1 // refcount($a['foo']) = 1 $b = &$a; // refcount($a) = 2 // is_ref($a) = true // refcount($a['foo']) = 1 $b['foo'] = 'bbb'; // refcount($a) = 2 // refcount($a['foo']) = 1 var_dump($a, $b); extract($a, EXTR_REFS); $foo = 'noo'; var_dump($a, $b);}function t3(){ $a = array('foo' => 'aaa'); // refcount($a) = 1 // refcount($a['foo']) = 1 $b = &$a; // refcount($a) = 2 // is_ref($a) = true // refcount($a['foo']) = 1 unset($b); // refcount($a) = 1 // is_ref($a) = true // refcount($a['foo']) = 1 var_dump($a); extract($a, EXTR_REFS); $foo = 'noo'; var_dump($a);}t1();t2();t3();?>--EXPECT--array(1) { ["foo"]=> string(3) "aaa"}array(1) { ["foo"]=> string(3) "bbb"}array(1) { ["foo"]=> &string(3) "noo"}array(1) { ["foo"]=> string(3) "bbb"}array(1) { ["foo"]=> string(3) "bbb"}array(1) { ["foo"]=> string(3) "bbb"}array(1) { ["foo"]=> &string(3) "noo"}array(1) { ["foo"]=> &string(3) "noo"}array(1) { ["foo"]=> string(3) "aaa"}array(1) { ["foo"]=> &string(3) "noo"}--UEXPECT--array(1) { [u"foo"]=> unicode(3) "aaa"}array(1) { [u"foo"]=> unicode(3) "bbb"}array(1) { [u"foo"]=> &unicode(3) "noo"}array(1) { [u"foo"]=> unicode(3) "bbb"}array(1) { [u"foo"]=> unicode(3) "bbb"}array(1) { [u"foo"]=> unicode(3) "bbb"}array(1) { [u"foo"]=> &unicode(3) "noo"}array(1) { [u"foo"]=> &unicode(3) "noo"}array(1) { [u"foo"]=> unicode(3) "aaa"}array(1) { [u"foo"]=> &unicode(3) "noo"}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -