dereference_011.phpt 575 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. --TEST--
  2. Testing array dereference with chaining
  3. --FILE--
  4. <?php
  5. error_reporting(E_ALL);
  6. class foo {
  7. public $arr;
  8. public function &a() {
  9. return $this->arr;
  10. }
  11. }
  12. $foo = new foo;
  13. $h = &$foo->a();
  14. $h[] = 1;
  15. $h[] = $foo;
  16. var_dump($foo->a()[1]->arr[1]->a()[1]->arr[1]->arr[0]);
  17. var_dump($foo->a()[1]);
  18. var_dump($foo->a()[1]->arr[1]);
  19. ?>
  20. --EXPECTF--
  21. int(1)
  22. object(foo)#%d (1) {
  23. ["arr"]=>
  24. &array(2) {
  25. [0]=>
  26. int(1)
  27. [1]=>
  28. *RECURSION*
  29. }
  30. }
  31. object(foo)#%d (1) {
  32. ["arr"]=>
  33. &array(2) {
  34. [0]=>
  35. int(1)
  36. [1]=>
  37. *RECURSION*
  38. }
  39. }