Как работает условие с делением по модулю %?

Изучаю PHP и не могу понять как работает условие с делением по модулю %, перед оператором CONTINUE, ПРОСТО НЕ ПОНИМАЮ, сейчас голову сломаю, вот код:

$arr=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20];

foreach ($arr as $key){

if ($key % 2){
    continue;
}

echo $key.'</br>';
} 

Он выводит четные числа, но как проверяется условие я не понимаю, объясните пожалуйста на пальцах, ведь если 1 % 2 это 1, в условии в скобках у нас получается 1?! И?!, что с этого почему CONTINUE срабатывает?? 2%2 это 0 и что с того что в условии 0 ?? почему он будет выводить эту четную двойку в браузер ? и тд..


Ответы (1 шт):

Автор решения: ITIFSMTH

Потому что при приобразовании типа Int в Bool используется следующее правило: 0 - False 1, 2, 3... - True

Когда Вы делите 1 на 2 по модулю, остаток - 1, 1 - True, срабатывает If и continue пропускает код дальше и выполняет следующий цикл

А когда делится 2%2, то остаток - 0, 0 - False, if не срабатывает, выводится результат в браузер

→ Ссылка