- Output for 7.4.0 - 7.4.33, 8.0.1 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
- LOCK_SH LOCK_UN
<?php
function incorrect(int $flags) {
// Would work in C and other languages
if ($flags & LOCK_SH) {
echo "LOCK_SH\n";
} elseif($flags & LOCK_EX) {
echo "LOCK_EX\n";
} elseif($flags & LOCK_UN) {
echo "LOCK_UN\n";
}
}
function correct(int $flags) {
$mode = $flags & ~LOCK_NB;
if ($mode === LOCK_SH) {
echo "LOCK_SH\n";
} elseif($mode === LOCK_EX) {
echo "LOCK_EX\n";
} elseif($mode === LOCK_UN) {
echo "LOCK_UN\n";
}
}
incorrect(LOCK_UN);
correct(LOCK_UN);