99 lines
1.3 KiB
PHP
99 lines
1.3 KiB
PHP
--TEST--
|
|
Bug #80742 (Opcache JIT makes some boolean logic unexpectedly be true)
|
|
--FILE--
|
|
<?php
|
|
|
|
function checkGroundState(float $movY, float $dy) : void{
|
|
var_dump($movY != $dy, $movY < 0, ($movY != $dy and $movY < 0));
|
|
var_dump("wow!");
|
|
}
|
|
|
|
checkGroundState(0, 0);
|
|
|
|
function eq(float $a, float $b, $c, $d) {
|
|
if ($a == $b) {
|
|
echo 1;
|
|
}
|
|
if ($a == $b) {
|
|
} else {
|
|
echo 2;
|
|
}
|
|
if ($a != $b) {
|
|
echo 3;
|
|
}
|
|
if ($a != $b) {
|
|
} else {
|
|
echo 4;
|
|
}
|
|
if ($a === $b) {
|
|
echo 5;
|
|
}
|
|
if ($a === $b) {
|
|
} else {
|
|
echo 6;
|
|
}
|
|
if ($a !== $b) {
|
|
echo 7;
|
|
}
|
|
if ($a !== $b) {
|
|
} else {
|
|
echo 8;
|
|
}
|
|
echo "\n";
|
|
var_dump(
|
|
$a == $b && $c,
|
|
$a != $b && $c,
|
|
$a === $b && $c,
|
|
$a !== $b && $c,);
|
|
var_dump(
|
|
$a == $b || $d,
|
|
$a != $b || $d,
|
|
$a === $b || $d,
|
|
$a !== $b || $d);
|
|
}
|
|
eq(3.0, 3.0, true, false);
|
|
eq(3.0, 2.0, true, false);
|
|
eq(3.0, NAN, true, false);
|
|
eq(NAN, NAN, true, false);
|
|
--EXPECT--
|
|
bool(false)
|
|
bool(false)
|
|
bool(false)
|
|
string(4) "wow!"
|
|
1458
|
|
bool(true)
|
|
bool(false)
|
|
bool(true)
|
|
bool(false)
|
|
bool(true)
|
|
bool(false)
|
|
bool(true)
|
|
bool(false)
|
|
2367
|
|
bool(false)
|
|
bool(true)
|
|
bool(false)
|
|
bool(true)
|
|
bool(false)
|
|
bool(true)
|
|
bool(false)
|
|
bool(true)
|
|
2367
|
|
bool(false)
|
|
bool(true)
|
|
bool(false)
|
|
bool(true)
|
|
bool(false)
|
|
bool(true)
|
|
bool(false)
|
|
bool(true)
|
|
2367
|
|
bool(false)
|
|
bool(true)
|
|
bool(false)
|
|
bool(true)
|
|
bool(false)
|
|
bool(true)
|
|
bool(false)
|
|
bool(true)
|