PHP - Переключение case оценивается как true, тогда как тот же оператор в if не делает

Я не совсем понимаю это... Взгляните на следующее:

$value = 0;
if($value >= 90) {
    // this does not return true
}
switch($value) {        
    case $value >= 90:              
        // this however does
    break;  
}

Я что-то упускаю очень очевидное?

1 ответ

Решение

$value >= 90 оценивает false

Как $value 0, считается false, Вот почему ваш case работает.

По-простому это можно переписать так:

switch($value) {        
    case false:              
        // this works
    break;  
}
Другие вопросы по тегам