identical_002.phpt 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. --TEST--
  2. JIT IDENTICAL: 002 Comparison with NaN
  3. --INI--
  4. opcache.enable=1
  5. opcache.enable_cli=1
  6. opcache.file_update_protection=0
  7. opcache.jit_buffer_size=1M
  8. opcache.protect_memory=1
  9. --EXTENSIONS--
  10. opcache
  11. --FILE--
  12. <?php
  13. function t() {
  14. echo "!";
  15. return true;
  16. }
  17. function f() {
  18. echo "!";
  19. return false;
  20. }
  21. $a = 0.0;
  22. $b = 0.0;
  23. $c = 1.0;
  24. $d = NAN;
  25. var_dump($a === $b);
  26. var_dump($a === $c);
  27. var_dump($a === $d);
  28. var_dump($a !== $b);
  29. var_dump($a !== $c);
  30. var_dump($a !== $d);
  31. var_dump($a === $b ? 1 : 0);
  32. var_dump($a === $c ? 1 : 0);
  33. var_dump($a === $d ? 1 : 0);
  34. var_dump($a !== $b ? 1 : 0);
  35. var_dump($a !== $c ? 1 : 0);
  36. var_dump($a !== $d ? 1 : 0);
  37. if ($a === $b) {
  38. echo "1\n";
  39. }
  40. if ($a === $c) {
  41. echo "2\n";
  42. }
  43. if ($a === $d) {
  44. echo "3\n";
  45. }
  46. if ($a !== $b) {
  47. echo "4\n";
  48. }
  49. if ($a !== $c) {
  50. echo "5\n";
  51. }
  52. if ($a !== $d) {
  53. echo "6\n";
  54. }
  55. if ($a === $b) {
  56. } else {
  57. echo "7\n";
  58. }
  59. if ($a === $c) {
  60. } else {
  61. echo "8\n";
  62. }
  63. if ($a === $d) {
  64. } else {
  65. echo "9\n";
  66. }
  67. if ($a !== $b) {
  68. } else {
  69. echo "A\n";
  70. }
  71. if ($a !== $c) {
  72. } else {
  73. echo "B\n";
  74. }
  75. if ($a !== $d) {
  76. } else {
  77. echo "C\n";
  78. }
  79. var_dump($a === $b && t());
  80. var_dump($a === $c && t());
  81. var_dump($a === $d && t());
  82. var_dump($a !== $b && t());
  83. var_dump($a !== $c && t());
  84. var_dump($a !== $d && t());
  85. var_dump($a === $b || f());
  86. var_dump($a === $c || f());
  87. var_dump($a === $d || f());
  88. var_dump($a !== $b || f());
  89. var_dump($a !== $c || f());
  90. var_dump($a !== $d || f());
  91. $a=NAN;
  92. var_dump($a === $d);
  93. var_dump($a !== $d);
  94. var_dump($a === $d ? 1 : 0);
  95. var_dump($a !== $d ? 1 : 0);
  96. ?>
  97. --EXPECT--
  98. bool(true)
  99. bool(false)
  100. bool(false)
  101. bool(false)
  102. bool(true)
  103. bool(true)
  104. int(1)
  105. int(0)
  106. int(0)
  107. int(0)
  108. int(1)
  109. int(1)
  110. 1
  111. 5
  112. 6
  113. 8
  114. 9
  115. A
  116. !bool(true)
  117. bool(false)
  118. bool(false)
  119. bool(false)
  120. !bool(true)
  121. !bool(true)
  122. bool(true)
  123. !bool(false)
  124. !bool(false)
  125. !bool(false)
  126. bool(true)
  127. bool(true)
  128. bool(false)
  129. bool(true)
  130. int(0)
  131. int(1)