bug28739.phpt 927 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. --TEST--
  2. Bug #28739 (*diff() and *intersect() not clearing the fci cache before work)
  3. --FILE--
  4. <?php
  5. class p {
  6. public $x;
  7. function __construct($x){$this->x=$x;}
  8. }
  9. function a($a, $b){var_dump(__FUNCTION__);return $a->x - $b->x;}
  10. function b($a, $b){var_dump(__FUNCTION__);return $a->x - $b->x;}
  11. $p1 = array(new p(2), new p(1), new p(0));
  12. $p2 = array(new p(0), new p(2), new p(3));
  13. uasort($p1, 'a');
  14. print_r($p1);
  15. echo "Now diffing:\n";
  16. print_r(array_udiff($p1,$p2, 'b'));
  17. ?>
  18. --EXPECT--
  19. string(1) "a"
  20. string(1) "a"
  21. Array
  22. (
  23. [2] => p Object
  24. (
  25. [x] => 0
  26. )
  27. [1] => p Object
  28. (
  29. [x] => 1
  30. )
  31. [0] => p Object
  32. (
  33. [x] => 2
  34. )
  35. )
  36. Now diffing:
  37. string(1) "b"
  38. string(1) "b"
  39. string(1) "b"
  40. string(1) "b"
  41. string(1) "b"
  42. string(1) "b"
  43. string(1) "b"
  44. string(1) "b"
  45. string(1) "b"
  46. Array
  47. (
  48. [1] => p Object
  49. (
  50. [x] => 1
  51. )
  52. )