sccp_004.phpt 788 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. --TEST--
  2. SCCP 004: Conditional Constant Propagation of non-escaping array elements
  3. --INI--
  4. opcache.enable=1
  5. opcache.enable_cli=1
  6. opcache.optimization_level=-1
  7. opcache.opt_debug_level=0x20000
  8. opcache.preload=
  9. --EXTENSIONS--
  10. opcache
  11. --FILE--
  12. <?php
  13. function foo(int $x) {
  14. $a = [1,2,3];
  15. $a[2] = $x;
  16. $i = 1;
  17. $c = $i < 2;
  18. if ($c) {
  19. $k = 2 * $i;
  20. $a[$k] = $i;
  21. // $a[$k]++;
  22. echo isset($a[$k]);
  23. // $a[$k] += 5;
  24. }
  25. echo $a[2];
  26. }
  27. ?>
  28. --EXPECTF--
  29. $_main:
  30. ; (lines=1, args=0, vars=0, tmps=0)
  31. ; (after optimizer)
  32. ; %ssccp_004.php:1-17
  33. 0000 RETURN int(1)
  34. foo:
  35. ; (lines=4, args=1, vars=1, tmps=0)
  36. ; (after optimizer)
  37. ; %ssccp_004.php:2-15
  38. 0000 CV0($x) = RECV 1
  39. 0001 ECHO string("1")
  40. 0002 ECHO string("1")
  41. 0003 RETURN null