Есть очень простое и элегантное решение основанное на свойстве двоичных чисел: число нечётное только тогда, когда его младший бит установлен в 1. С помощью битовой операции & (и) можно это проверить.
php > echo -2 & 1; php > echo -1 & 1; 1 php > echo 0 & 1; php > echo 1 & 1; 1 php > echo 2 & 1; php > echo 3 & 1; 1 php > echo 4 & 1; 0