|
|
|
| Встречаю в скриптах такой оборот:
<?php
$title == 'Error' ? 'bgcolor=#ffffff' : 'bgcolor=red';
?>
|
Хотелось бы узнать плюсы и минусы такого приёма в отличии от:
<?php
if ($title == 'Error') 'bgcolor=#ffffff' ;
else 'bgcolor=red';
?> | |
|
|
|
|
|
|
|
для: sirop
(23.05.2007 в 15:19)
| | Дело только в читабельности кода. В данном случае условие, а также iftrue и iffalse не занимают много места, поэтому, на мой взгляд, все нормально. | |
|
|
|
|
|
|
|
для: Unkind
(23.05.2007 в 15:24)
| | Дело не только в читабельности.
левое выражение в операторе присваивания не приходится записывать дважды.
А значит первый вариант позволяет избежать ошибок, когда эти выражения окажутся ошибочно написанными по-разному.
К сожалению.... к глубочайшему моему сожалению, условное выражение в PHP реализовано с нарушениями ассоциативности, и пользоваться им нужно очень осторожно. не брезгуя скобками. | |
|
|
|
|
|
|
|
для: sirop
(23.05.2007 в 15:19)
| | >Встречаю в скриптах такой оборот:
>
><?php
>$title == 'Error' ? 'bgcolor=#ffffff' : 'bgcolor=red';
>?>
>
|
такой код ни на что не воздействует.
>
>Хотелось бы узнать плюсы и минусы такого приёма в отличии от:
>
><?php
>if ($title == 'Error') 'bgcolor=#ffffff' ;
> else 'bgcolor=red';
>?>
такой , впрочем, тоже. | |
|
|
|
|
|
|
|
для: Trianon
(23.05.2007 в 15:29)
| | to Trianon: Имеется ввиду, что не указан объект, которому присваивается цвет? | |
|
|
|
|
|
|
|
для: coloboc66
(23.05.2007 в 15:36)
| | Имеется ввиду, что не указан объект, которому присваивается цвет?
Имеется ввиду, что нет никакого вывода или оператора присвоения. Бессмысленное выражение.
В Perl в таких случаях выдается замечание. | |
|
|
|
|
|
|
|
для: sirop
(23.05.2007 в 15:19)
| | Первый вариант более короткий, уменьшается на одной строке, однако менее читабелен по сравнению со второй строкой. Такая конструкция используется, когда выражение с X ? Y : Z получается не очень громоздкое и длинное. | |
|
|
|
|
|
|
|
для: cheops
(23.05.2007 в 15:41)
| | Unkind:
>Имеется ввиду, что нет никакого вывода или оператора присвоения
Это я ошибся при написании примера
По поводу такой конструкции кода - всё понятно. Всем большое спасибо за пояснения! | |
|
|
|
|
|
|
|
для: sirop
(23.05.2007 в 15:51)
| | вообще да, такой код ниче делать не будет
вот так будет нагляднее
<?php
$std = 'black';
$color = ($std=='black') ? '#000000' : '#ffffff';
if ($std == 'black')
$color = '#000000';
else
$color = '#ffffff';
?>
|
| |
|
|
|