Условные операторы ? false : true;

Статус
В этой теме нельзя размещать новые ответы.

асс

Мой дом здесь!
Регистрация
13 Окт 2006
Сообщения
762
Реакции
230
Добрый вечер!

Скажите пожалуйста как расшифровать подобную запись?


PHP:
 return ($str == '') ? false : true;

и можно ли ее использовать в место
PHP:
 if(){} ;

Например у меня есть такой код

PHP:
if($template){echo '0';} else {echo '1';}
 
Читаем Для просмотра ссылки Войди или Зарегистрируйся , а точнее раздел "Тернарный оператор"

PHP:
return ($str == '') ? false : true;
Расшифровывается как:
- Если $str пустая
- То возврщаем false
- иначе возвращаем true

PHP:
if () {}
использовать можно. Тернарный оператор - просто более удобный способ записи.

Если в кратце:
(условие) ? [да] : [нет]

PHP:
if (условие)
{ [да] }
else
{ [нет] }
 
jDony, Спасибо щас поглядел в википедии, теперь буду знать.
А если три тогда лучше свич?

Я щас делаю так

Если надо одно значение типа если 1 то выполняем
Код:
if($contact_form==1){
echo "Делать форму";}


Если мне надо 3 и более значений в зависимости от выбора то делаю так

Код:
//курим,  бухаем, курим и бухаем )))
switch ($gen_metod) {
case 1:
//рандомно
echo "курим и бухаем";
break;
case 2:
echo "  бухае";
break;
case 3:
//Для мужчин
echo " мужчин";
break;
}
 
Для абстрактного случая:
- Да тут следует использовать switch оператор, так как if сильно захламляют код, когда их много.
 
Для трёх значений тоже можно использовать тернарный оператор:
PHP:
echo ($gen_metod == 1) ? "курим и бухаем" : ($gen_metod == 2 ? "  бухае" : " мужчин");

Запись более лаконичная, но есть риск неверно расставить скобки :)
Начинающие программисты зависнут надолго на такой строке :-]
 
Это вряд ли... Я не завис.
Сейчас не завис или много лет назад когда был начинающим?
Для меня тернарные операторы когда-то давно представляли лёгкую обфускацию кода, затрудняющую восприятие и как я понял я не одинок :)
 
Как заставить работать этот код?
Не хочет работать
PHP:
  $name    = isset($_POST['name']) ? $_POST['name'] : "guest";

Из формы получаю данные, если форма пуста то должен отдавать guest, то что идет после :
 
возможно у вас в переменной $_POST['name'] пусто, лучше такой способ
PHP:
$name = !empty($_POST['name']) ? $_POST['name'] : "guest";
 
Такие конструкции очень часто встречаются.
Мне надоело писать часто эти проверки, и сделал функцию:
PHP:
function post($value,$no_value=''){
return (isset($_POST[$value])?$_POST[$value]:$no_value);
}
Теперь если надо проверить значение так как это:
PHP:
$name = isset($_POST['name']) ? $_POST['name'] : "guest";
то я пишу что-то вроде:
PHP:
$name = post('name','guest');
То же самое и для get, request параметров:)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху