bug22592.phpt 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. --TEST--
  2. Bug #22592 (cascading assignments to strings with curly braces broken)
  3. --FILE--
  4. <?php
  5. function error_hdlr($errno, $errstr) {
  6. echo "[$errstr]\n";
  7. }
  8. set_error_handler('error_hdlr');
  9. $i = 4;
  10. $s = "string";
  11. $result = "* *-*";
  12. var_dump($result);
  13. $result[6] = '*';
  14. var_dump($result);
  15. $result[1] = $i;
  16. var_dump($result);
  17. $result[3] = $s;
  18. var_dump($result);
  19. $result[7] = 0;
  20. var_dump($result);
  21. $a = $result[1] = $result[3] = '-';
  22. var_dump($result);
  23. $b = $result[3] = $result[5] = $s;
  24. var_dump($result);
  25. $c = $result[0] = $result[2] = $result[4] = $i;
  26. var_dump($result);
  27. $d = $result[6] = $result[8] = 5;
  28. var_dump($result);
  29. $e = $result[1] = $result[6];
  30. var_dump($result);
  31. var_dump($a, $b, $c, $d, $e);
  32. $result[0] = $result[-4] = $result[-1] = 'a';
  33. var_dump($result);
  34. ?>
  35. --EXPECT--
  36. string(5) "* *-*"
  37. string(7) "* *-* *"
  38. string(7) "*4*-* *"
  39. [Only the first byte will be assigned to the string offset]
  40. string(7) "*4*s* *"
  41. string(8) "*4*s* *0"
  42. string(8) "*-*-* *0"
  43. [Only the first byte will be assigned to the string offset]
  44. string(8) "*-*s*s*0"
  45. string(8) "4-4s4s*0"
  46. string(9) "4-4s4s505"
  47. string(9) "454s4s505"
  48. string(1) "-"
  49. string(1) "s"
  50. string(1) "4"
  51. string(1) "5"
  52. string(1) "5"
  53. string(9) "a54s4a50a"