mmsgold
8.10.2013 - 16:06
наткнулся на такую логику в версии 5.3
теперь в ней можно пропускать оператор при условии истинно(т.е. ничего не писать там)
так вот, вот примеры
$r = true?:false; //true
$r = false?:true; //true
$r = ""?:1; //1
$r = 0?:2;//2
ну и какова здесь логика?
HErATuB
8.10.2013 - 16:15
По идее здесь
$r = true?:false; //true
должно быть false;
а во всех остальных верно
mmsgold
8.10.2013 - 16:23
HErATuB, да я тоже так думаю, значит ошибка в примере, просто не 0 не пустая строка не воспринимается как false,, и получается что в любом случае будет результат равный else...., кроме случая когда явно прописано false, но это и есть булевный 0, почему 0 тогда не сработал, как мне туда еще false передать
Invis1ble
8.10.2013 - 18:46
Цитата |
$r = true?:false; //true $r = false?:true; //true $r = ""?:1; //1 $r = 0?:2;//2 |
все верно, никаких ошибок нет, читаем мануал и просветляемся
Цитата |
просто не 0 не пустая строка не воспринимается как false |
mmsgold
8.10.2013 - 19:14
Invis1ble
$r = true?:false; //true почему здесь возвращает true, как бы возвращает истину? так как там пусто