1--TEST-- 2JIT CMP: 003 Comparison with NaN 3--INI-- 4opcache.enable=1 5opcache.enable_cli=1 6opcache.file_update_protection=0 7opcache.protect_memory=1 8--EXTENSIONS-- 9opcache 10--FILE-- 11<?php 12function t() { 13 echo "!"; 14 return true; 15} 16function f() { 17 echo "!"; 18 return false; 19} 20$a = 0.0; 21$i = 0; 22$b = NAN; 23$c = true; 24$d = false; 25var_dump($a == $b); 26var_dump($a != $b); 27var_dump($a < $b); 28var_dump($a > $b); 29var_dump($a <= $b); 30var_dump($a >= $b); 31var_dump($a == $b ? 1 : 0); 32var_dump($a != $b ? 1 : 0); 33var_dump($a < $b ? 1 : 0); 34var_dump($a > $b ? 1 : 0); 35var_dump($a <= $b ? 1 : 0); 36var_dump($a >= $b ? 1 : 0); 37if ($a == $b) { 38} else { 39 echo "1\n"; 40} 41if ($a != $b) { 42} else { 43 echo "2\n"; 44} 45if ($a < $b) { 46} else { 47 echo "3\n"; 48} 49if ($a > $b) { 50} else { 51 echo "4\n"; 52} 53if ($a <= $b) { 54} else { 55 echo "5\n"; 56} 57if ($a >= $b) { 58} else { 59 echo "6\n"; 60} 61var_dump($i == $b ? 1 : 0); 62var_dump($i != $b ? 1 : 0); 63var_dump($i < $b ? 1 : 0); 64var_dump($i > $b ? 1 : 0); 65var_dump($i <= $b ? 1 : 0); 66var_dump($i >= $b ? 1 : 0); 67if ($i == $b) { 68} else { 69 echo "1\n"; 70} 71if ($i != $b) { 72} else { 73 echo "2\n"; 74} 75if ($i < $b) { 76} else { 77 echo "3\n"; 78} 79if ($i > $b) { 80} else { 81 echo "4\n"; 82} 83if ($i <= $b) { 84} else { 85 echo "5\n"; 86} 87if ($i >= $b) { 88} else { 89 echo "6\n"; 90} 91var_dump($a == $b && t()); 92var_dump($a != $b && t()); 93var_dump($a < $b && t()); 94var_dump($a > $b && t()); 95var_dump($a <= $b && t()); 96var_dump($a >= $b && t()); 97var_dump($a == $b || f()); 98var_dump($a != $b || f()); 99var_dump($a < $b || f()); 100var_dump($a > $b || f()); 101var_dump($a <= $b || f()); 102var_dump($a >= $b || f()); 103var_dump($i == $b && t()); 104var_dump($i != $b && t()); 105var_dump($i < $b && t()); 106var_dump($i > $b && t()); 107var_dump($i <= $b && t()); 108var_dump($i >= $b && t()); 109var_dump($i == $b || f()); 110var_dump($i != $b || f()); 111var_dump($i < $b || f()); 112var_dump($i > $b || f()); 113var_dump($i <= $b || f()); 114var_dump($i >= $b || f()); 115$a=NAN; 116var_dump($a == $b); 117var_dump($a != $b); 118var_dump($a < $b); 119var_dump($a > $b); 120var_dump($a <= $b); 121var_dump($a >= $b); 122var_dump($a == $b ? 1 : 0); 123var_dump($a != $b ? 1 : 0); 124var_dump($a < $b ? 1 : 0); 125var_dump($a > $b ? 1 : 0); 126var_dump($a <= $b ? 1 : 0); 127var_dump($a >= $b ? 1 : 0); 128?> 129--EXPECT-- 130bool(false) 131bool(true) 132bool(false) 133bool(false) 134bool(false) 135bool(false) 136int(0) 137int(1) 138int(0) 139int(0) 140int(0) 141int(0) 1421 1433 1444 1455 1466 147int(0) 148int(1) 149int(0) 150int(0) 151int(0) 152int(0) 1531 1543 1554 1565 1576 158bool(false) 159!bool(true) 160bool(false) 161bool(false) 162bool(false) 163bool(false) 164!bool(false) 165bool(true) 166!bool(false) 167!bool(false) 168!bool(false) 169!bool(false) 170bool(false) 171!bool(true) 172bool(false) 173bool(false) 174bool(false) 175bool(false) 176!bool(false) 177bool(true) 178!bool(false) 179!bool(false) 180!bool(false) 181!bool(false) 182bool(false) 183bool(true) 184bool(false) 185bool(false) 186bool(false) 187bool(false) 188int(0) 189int(1) 190int(0) 191int(0) 192int(0) 193int(0) 194