У меня есть условный оператор, чтобы проверить, является ли число нечетным или четным в PHP
<?php
$stdin = fopen("php://stdin", "r");
fscanf($stdin, "%d\n", $N);
fclose($stdin);
function weird_or_not($N) {
//check that n is between 1 and 100
if ($N >= 1 && $N <= 100) {
//check if n is even
if ($N % 2 == 0) {
// check if n is in the inclusive range 2 - 5
if ($N >= 2 && $N <= 5) {
echo 'Not Weird';
}
// check if n is in the inclusive range 6 - 20
elseif ($N >= 6 && $N <= 20) {
echo 'Weird';
}
// check if n is greater than 20
elseif ($N > 20) {
echo 'Not Weird';
}
}
// otherwise n is odd
else {
echo 'Weird';
echo $N % 2;
}
}
}
echo weird_or_not($stdin);
?>
Когда у меня есть ввод четного числа, он выводит 'Weird', а когда я печатаю $N% 2, для любого четного числа он дает результат как 1, когда он должен быть 0. Так почему четное число по модулю 2 возвращает 1, когда оно должно возвращать 0?