Регистрация
Вход через соцсети
Восстановление пароля

Объясните функцию не указанную в руководстве

Новый топик
28.08.2007, 12:59
Ответить | Цитировать
Гость
Гость

В форме добовления:

<option value='1'".($srchPat[12]==1?" selected":"").">Нуждаюсь</option>

встретился с такой вот функцией:

".($srchPat[12]==1?" selected":"")."

Объясните ее сентаксис, пожалуйста, а в частности на что делят односторонние ковычки " и что значит конечное :"" ?
28.08.2007, 14:31
Ответить | Цитировать
r

Зарегистрирован:
2007-01-09
Сообщений: 24

Это тернарный опертор
http://php.mirror.camelnetwork.com/manual/ru/langu...

Он имеет следующий вид:

условие ? выполнить_если_истинно : выполнить_если_ложно

пример:
<?
$b = 5;
$a = ( $b > 4 ? "больше" : "меньше" );
print("$an");
?>

в данном случае скрипт выведет слово "больше", т е условие в тернарном операторе истинно, значит переменной $a присвоить строка "больше"

Я рекомендую использовать тернарный оператор вместо функций opt() и opt_case() когда в качестве аргумента применяется функции, т е вместо строки:

".opt(!$isTitle,s_list_class($sub,$array_cc[1],"recNum=1"))."

лучше применить конструкцию:

".( $isTitle ? '' : s_list_class($sub,$array_cc[1],"recNum=1" ))."

Разница в том, что opt() и opt_case() - функции и переданные аргументы исполняются в любом случае, что создаёт дополнительную нагрузку, если в качестве аргумента передаётся функция.

Чего не понимают, тем не владеют /Гёте/
198 196 2007-08-28 14:31:58 7202
Описание проекта