fixedarray_001.phpt 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. --TEST--
  2. SPL: FixedArray: std operations
  3. --FILE--
  4. <?php
  5. $a = new SplFixedArray(0);
  6. // errors
  7. try {
  8. $a[0] = "value1";
  9. } catch (RuntimeException $e) {
  10. echo $e::class, ': ', $e->getMessage(), "\n";
  11. }
  12. try {
  13. var_dump($a["asdf"]);
  14. } catch (\TypeError $e) {
  15. echo $e::class, ': ', $e->getMessage(), "\n";
  16. }
  17. try {
  18. unset($a[-1]);
  19. } catch (RuntimeException $e) {
  20. echo $e::class, ': ', $e->getMessage(), "\n";
  21. }
  22. $a->setSize(10);
  23. $a[0] = "value0";
  24. $a[1] = "value1";
  25. $a[2] = "value2";
  26. $a[3] = "value3";
  27. $ref = "value4";
  28. $ref2 =&$ref;
  29. $a[4] = $ref;
  30. $ref = "value5";
  31. unset($a[1]);
  32. var_dump($a[0], $a[2], $a[3], $a[4]);
  33. // countable
  34. var_dump(count($a), $a->getSize(), count($a) == $a->getSize());
  35. // clonable
  36. $b = clone $a;
  37. $a[0] = "valueNew";
  38. var_dump($b[0]);
  39. ?>
  40. --EXPECT--
  41. RuntimeException: Index invalid or out of range
  42. TypeError: Illegal offset type
  43. RuntimeException: Index invalid or out of range
  44. string(6) "value0"
  45. string(6) "value2"
  46. string(6) "value3"
  47. string(6) "value4"
  48. int(10)
  49. int(10)
  50. bool(true)
  51. string(6) "value0"