2012-05-23 2 views
-3

Я хочу, чтобы две вещи случались, когда это правда. Он работает отлично, но я не уверен, что это хорошее программирование.PHP Shorthand If/Else

$a =1; 
($a == 1) ? (($b= 'val1') && ($c= 'val2')) : null; 
echo $b . '<br/>'; 
echo $c; 

Я мог бы просто написать, если иначе, но так, это умно. Пожалуйста, помогите мне ...

+1

* «таким образом, это умный» * - нет, это не так ... – DCoder

+4

Нет, на самом деле это не умно; это просто хвастается. Хорошо для обучения, но не хорошего для кода реального мира. Вы должны использовать 'if'. – Jon

+0

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

ответ

1

Простой ...

<?php 
$age = 20; 
$status = ($age >= 18) ? "adult" : "kid"; 
echo $status; 
?> 
+0

Почему вы цитируете '$ status' ?! – ThiefMaster

+0

xD, потому что у меня был текст, а затем я удалил его и забыл удалить цитаты, мои плохие ... – HamZa

1

Это плохо. Вы должны использовать if, эта ситуация лучше подходит.

Обратите внимание, что смешивание PHP и HTML в одном файле плохое. Для этого вы должны использовать механизм шаблонов (например, Smarty). В противном случае его нельзя назвать хорошим программированием.

-1

Если первое условие соответствует, будет оценено второе и третье.

$a == 1 AND $b = 'val1' AND $c = 'val2'; 
+0

Это код SQL? Похоже, это не соответствует вопросу. – Manuel

+0

Это PHP. OP хочет достичь «компактного кода», и я часто его использую. По крайней мере, попробуйте сначала перед голосом. – flowfree

+0

Я не голосовал, я только прокомментировал. – Manuel

1

То BAD стиль. НИКОГДА не следует использовать его в реальном коде.

BTW. если вы заинтересованы в изучении, даже это должно работать для вас:

<?php 
$a=1; 
$a==1 && ($b='val1') && ($c='val2'); 
echo $b; 
echo $c; 
?> 

Это происходит из Short-circuit evaluation.

+0

$ a = 1; \t if ($ a == 1) { \t \t $ b = 'val1'; \t \t $ c = 'val2'; \t} это то, что я хочу сделать с этим коротким кодом руки да я мог бы использовать этот метод, не портя , но я просто проверить его – Thilina

+0

Ваш код рекомендуемый подход. Не пытайтесь что-то запутывать. – SuperSaiyan