$a=isset($_GET['a']) ? $_GET['a'] : 0 ; объясните что за двоеточие и 0 в конце - без них почему то переменная считывается как булиевая
Re: ? знак вопроса что такое тенарный оператор Это наверное единственная фигня в программировании, которую пока не узнаешь, как зовётся - не можешь никак назвать. =)
Re: ? знак вопроса что такое тенарный оператор В названии темы неправильно написано слово - тернарный
О я тоже знаю, я кэп. )) (Кстати как ставить смайлики?) ? этот знак означает союз "то" (если это так, ТО это вот так). А " : " означает или. A так я видел такое чаще в условиях if. Уважаемые программисты, можно так писать? И что это означает?
Можно, но не всегда нужно. В некоторых случаях они полезны, для примера: Код (PHP): $value = ($value === 'Yes') ? true : false; Т.е. какая-то операция с условием, которую можно уместить в одну строчку, код получается чистый и наглядный. Если же ты суешь тернарник в if или в другой тернарник, то код получается не интуитивным, т.е. на этой строке придется остановиться и разобраться что в итоге получается. Потенциально, возможен косяк который сходу и не заметишь. Всё хорошо в меру ))
Не на всех версиях пыха работать будет. И да, тернарный оператор - это не краткая форма IF. Отличия в том, что if как таковой просто проверяет условие и запускает блок кода, в то время как тернарный оператор является выражением. Он не просто запускает ветвление кода, он возвращает значения, сгенерированные в его секциях.
Главное не забыть взять все его секции в скобки тоже, потому что в пыхе он просто волшебен. Избитый пример: Код (PHP): $arg = 'T'; $vehicle = ( ( $arg == 'B' ) ? 'bus' : ( $arg == 'A' ) ? 'airplane' : ( $arg == 'T' ) ? 'train' : ( $arg == 'C' ) ? 'car' : ( $arg == 'H' ) ? 'horse' : 'feet' ); echo $vehicle; //Выведет horse, лалала. А если нахреначить скобочек, такого не будет. В 95% языков будет адекватно работать и без них, да. Но пых - особенный...
хМ! Будем знать, будем знать. Точно,я сморозил глупость. Это выражение не относится к условию if. маненько перепутал.
А начерта здесь тернарник? Я бы понял, если бы было наоборот Код (Text): $value = ($value === true) ? "yes": "no"; А в таком виде как у вас и без него сработает.
а что, строка "No" трактуется как логически ложное значение? Код (Text): php -r '$a="no"; echo $a ? 1 : 0;' 1 автор приводит строковый ответ в логическое значение. всё ок.
Ganzal, Код (Text): $value = "no"; var_export(($value === 'Yes') ? true : false); echo "<br>"; var_export(($value === 'Yes')); результат: Код (Text): false false
Увы, эта стрелочка не имеет названия. Стрелочка и стрелочка. Ну разве что "оператор доступа к свойствам и методам объекта согласно их модификатору доступа".