bug53432.phpt 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. --TEST--
  2. Bug #53432: Assignment via string index access on an empty string converts to array
  3. --FILE--
  4. <?php
  5. $str = '';
  6. var_dump($str[0] = 'a');
  7. var_dump($str);
  8. $str = '';
  9. var_dump($str[5] = 'a');
  10. var_dump($str);
  11. $str = '';
  12. var_dump($str[-1] = 'a');
  13. var_dump($str);
  14. $str = '';
  15. var_dump($str['foo'] = 'a');
  16. var_dump($str);
  17. $str = '';
  18. try {
  19. var_dump($str[] = 'a');
  20. } catch (Error $e) {
  21. echo "Error: {$e->getMessage()}\n";
  22. }
  23. var_dump($str);
  24. $str = '';
  25. try {
  26. var_dump($str[0] += 1);
  27. } catch (Error $e) {
  28. echo "Error: {$e->getMessage()}\n";
  29. }
  30. var_dump($str);
  31. $str = '';
  32. try {
  33. var_dump($str[0][0] = 'a');
  34. } catch (Error $e) {
  35. echo "Error: {$e->getMessage()}\n";
  36. }
  37. var_dump($str);
  38. ?>
  39. --EXPECTF--
  40. string(1) "a"
  41. string(1) "a"
  42. string(1) "a"
  43. string(6) " a"
  44. Warning: Illegal string offset: -1 in %s on line %d
  45. NULL
  46. string(0) ""
  47. Warning: Illegal string offset 'foo' in %s on line %d
  48. string(1) "a"
  49. string(1) "a"
  50. Error: [] operator not supported for strings
  51. string(0) ""
  52. Error: Cannot use assign-op operators with string offsets
  53. string(0) ""
  54. Error: Cannot use string offset as an array
  55. string(0) ""