Вообще-то, этот оператор на самом деле
есть последовательность операторов. Его
использование выглядит следующим образом:
CONDITION-PART ? TRUE-PART : FALSE-PART
Это, в свою очередь, является сокращением от
вот такого кода:
if (CONDITION-PART) {
TRUE-PART
} else {
FALSE-PART
}
Опять же, вы ничего не узнаете о практическом применении этого оператора, пока не дойдете до главы 7 "Операторы управления".
Работает все это следующим образом: проверяется условие "CONDITION-PART", если оно истинно, то выполняется часть "TRUE-PART", если же оно ложно, то выполняется часть "FALSE-PART".
Данный оператор часто также называют
условным оператором. Пример использования:
сей оператор используется, чтобы присвоить
переменной одно из двух возможных значений,
основываясь на неком условии.
$secondVar = ($firstVar == 0) ? 0 : $array[0];
здесь переменной $secondVar будет присвоено
значение: 0 - если переменная $firstVar равна 0, и
$array[0] (первый элемент массива $array) - если
переменная не равна нулю.
Вы можете использовать вложенную форму
данного оператора:
$firstVar = $temp == 0 ?
$numFiles++ :
($temp == 1 ?
$numRecords++ :
($temp == 3 ? $numBytes++ : $numErrors++));
А вот еще более странное (на первый взгляд)
использование этого оператора:
$firstVar = 1;
$secondVar = 1;
$thirdVar = 1;
($thirdVar == 0 ? $firstVar : $secondVar) = 10;
print "$firstVar\n";
print "$secondVar\n";
print "$thirdVar\n";
в зависимости от значения переменной
$thirdVar значение 10 может присваиваться одной
из двух переменных - $firstVar и $secondVar.
Результатом работы программы будет: 1, 10, 1