[TC] невиданный ранее синтаксис
Здравствуйте, уважаемые!
В одной CMS в коде сценария установки, написанном вроде как на php, встретил
странный, не похожий на php синтаксис. Подскажите, правда ли, это он и есть
и что может означать такая конструкция?
$step = (isset($_GET['step']) ? $_GET['step'] : "0");
Меня, конечно, интересуют знаки ? (вопрос) и : (двоеточие) - что они здесь
делают?
Заранее всем благодарен за помощь,
Грызунов Александр. Самара.
Vande omentaina, eastreb!
Ой, не люблю я тернарный оператор, ой как не люблю!
Вообще конструкции типа $i++; $i+=5; меня умиляют и я их часто
пользую, а вот с тернарным не сдружились мы как-то.
В общем, Александр, это штука, которая пошла ещё с Сишника. Это не
больше не меньше, как аналог условного оператора.
Смотрите нормальный код:
if (isset($_GET['step'])) {
$step=$_GET['step'];
} else {
$step=0;
}
Иными словами, у вас задаётся утверждение $step=, затем задаётся
условие (читайте if (isset($_GET['step']))), потом вопрос, потом ветка
if, потом двоеточие, потом ветка else.
Это может быть полезно, когда у вас определяется только одно
утверждение вроде $step=тому-то или тому-то в зависимости от такого-то
условия.
Надеюсь, понятно объяснил)