Отправляет email-рассылки с помощью сервиса Sendsay

[TC] невиданный ранее синтаксис

Здравствуйте, уважаемые!

В одной CMS в коде сценария установки, написанном вроде как на php, встретил
странный, не похожий на php синтаксис. Подскажите, правда ли, это он и есть
и что может означать такая конструкция?

$step = (isset($_GET['step']) ? $_GET['step'] : "0");

Меня, конечно, интересуют знаки ? (вопрос) и : (двоеточие) - что они здесь
делают?

Заранее всем благодарен за помощь,
Грызунов Александр. Самара.

Ответить   "eastreb" Mon, 14 Dec 2009 09:42:24 +0300 (#959191)

 

Ответы:

Vande omentaina, eastreb!

Ой, не люблю я тернарный оператор, ой как не люблю!
Вообще конструкции типа $i++; $i+=5; меня умиляют и я их часто
пользую, а вот с тернарным не сдружились мы как-то.
В общем, Александр, это штука, которая пошла ещё с Сишника. Это не
больше не меньше, как аналог условного оператора.
Смотрите нормальный код:

if (isset($_GET['step'])) {
$step=$_GET['step'];
} else {
$step=0;
}

Иными словами, у вас задаётся утверждение $step=, затем задаётся
условие (читайте if (isset($_GET['step']))), потом вопрос, потом ветка
if, потом двоеточие, потом ветка else.
Это может быть полезно, когда у вас определяется только одно
утверждение вроде $step=тому-то или тому-то в зависимости от такого-то
условия.
Надеюсь, понятно объяснил)

Ответить   Mon, 14 Dec 2009 19:45:03 +0200 (#959687)