Альтернатиный синтаксис if else

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

Mapkyc

Профессор
Регистрация
8 Май 2007
Сообщения
107
Реакции
47
Спасите!
Уже час пытаюсь найти, как вместо конструкции вида if(услвие){дйствие} else{дйствие}
писать чтото в духе (условие) ? (дйствие) : (дйствие)

Из головы вылетело как-то.. а нагуглить немогу.
 
(условие) ? (дйствие) : (дйствие)

ни с каким другим языком не перепутал ??
у тебя веть получается операторов вообще нет o_O, плюс знак вопроса который точно пыху непонравится.

и чем собственно if и else не угодили ?? тамже ещё есть elseif - может поможет :)
ну и or и and никто не отменял :)

PHP:
if(услвие){дйствие} elseif(услвие2){дйствие2}elseif(услвие3){дйствие3}
 
Спасите!
Уже час пытаюсь найти, как вместо конструкции вида if(услвие){дйствие} else{дйствие}
писать чтото в духе (условие) ? (дйствие) : (дйствие)
Из головы вылетело как-то.. а нагуглить немогу.
Я очень надеюсь что это нужно не для реального проекта, а для самообразования или разбора чужого кода.
Из за этого страдает читабельность кода, иногда очень сильно. нНастоятельно не рекомендую применять в реальных проектах.
 
знающие
а нельзя прояснить для чего это вообще ??
для не просвящённых так сказать...
синтаксис не явный ... только запутывает всё и добавляет костылей

в каких случаях это удобно применять ??
 
похоже для того, чтобы привязать клиента к себе любимому:)
потому что в такой каше потом фиг что разберешь, если не сам писал код
 
такие вот ребусы
PHP:
<?
$a=10;
$b=20;
$c=0;
if($a>$b)$c=1;
//или
$c=$a>$b?1:$c;
echo $c;

if($a>$b){$c=1;}else{$c=2;}
//или
$c=$a>$b?1:2;
//или
$a>$b ? $c=1 : $c=2;
echo $c;

if($a>$b){$c=1;}elseif($a==$b){$c=2;}elseif($a==20){$c=3;}
//или
$c=$a>$b?1:$a==$b?2:$a==20?3:$c;
echo $c;

//и т. д.
echo $a!=$b || $a!=$c ? 1 : 2;

$a!=$b || $a!=$c ? $c=1 : $c=2;

?>

<?=$a>$b?1:2 ?>

<?=$a>$b?min($a,$b):max($a,$b) ?>
<?=$a>$b && $a==10 ? $a : $b ?>
 
знающие
а нельзя прояснить для чего это вообще ??
для не просвящённых так сказать...
синтаксис не явный ... только запутывает всё и добавляет костылей
в каких случаях это удобно применять ??
А ты мне скажи, зачем в пхп сделали поддержку goto? Для просмотра ссылки Войди или Зарегистрируйся :D

это было добавлено как поддержка альтернативного синтаксиса, из других языков. чтобы те, кто использовал аналогичное из c# не сильно страдали. И как вариант компактно записать условие, не тратя лишние символы (привет 90-е). Да и есть мнение, что тем больше различных вариантов, кторыми можно реализовать такие вещи, тем более широк и ярок язык программирования :D
Правда, такое лучше не применять, т.к. это причисляется к говнокоду
 
goto полезная штука позволяет в бинарниках делать немыслемые ветвления в алгоритме.
он очень полезен когда софт многопоточный ну а php просто подхватили идею для большей с++ похожести.
плюс ко всему goto есть даже в виндовых батниках.
насчёт Ternary Operator
смысл вижу есть только при вставках в шаблон чегонить типа
PHP:
<?=$a>$b?1:2 ?>
коротко и шаблон не засоряет.
 
не знаю как вам, но мне такая конструкция нравится, переодически ей пользуюсь, в большинстве современных языках она присутствует.
Если знать что это такое, и использовать аккуратно (имеется ввиду, не использовать вложенности, или использовать для присвоения констант), то запутаться в ней довольно проблематично

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