dereference_001.phpt 784 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. --TEST--
  2. Testing array dereference
  3. --FILE--
  4. <?php
  5. error_reporting(E_ALL);
  6. function a() {
  7. return array(1,array(5));
  8. }
  9. var_dump(a()[1][0]); // int(5)
  10. function b() {
  11. return array();
  12. }
  13. var_dump(b()[0]); // Notice: Undefined array key 0
  14. class foo {
  15. public $y = 1;
  16. public function test() {
  17. return array(array(array('foobar')));
  18. }
  19. }
  20. function c() {
  21. return array(new foo);
  22. }
  23. var_dump(c()[0]->y); // int(1)
  24. function d() {
  25. $obj = new foo;
  26. return $obj->test();
  27. }
  28. var_dump(d()[0][0][0][3]); // string(1) "b"
  29. function e() {
  30. $y = 'bar';
  31. $x = array('a' => 'foo', 'b' => $y);
  32. return $x;
  33. }
  34. var_dump(e()['b']); // string(3) "bar"
  35. ?>
  36. --EXPECTF--
  37. int(5)
  38. Warning: Undefined array key 0 in %s on line %d
  39. NULL
  40. int(1)
  41. string(1) "b"
  42. string(3) "bar"