Следующие выражения могут показаться вам незнакомыми, если вы не встречались с ними в других языках, — условный оператор с тремя операндами:
$first ? $second : $third
Если значение первого выражения истинно (не равно 0), то исполняется второе выражение, и это является результатом данного условного выражения. Иначе исполняется третий оператор.
<? if (isset($test) && $test != w): ?>
потому что первая запись короче. В первом случае если переменная $test не будет определена, то ее значение будет пустой строкой. Логично считать, что «никакая» строка — это тоже пустая. Подобная фраза может вызвать предупреждение о синтаксической ошибке, но это бывает редко.
Если вам не лень, то пользуйтесь правильными конструкциями и проверяйте переменную перед обращением к ней. А если лень, то считайте неопределенную переменную пустой строки логической ложью.
Приведем пример, который будет охватывать все, изученное в этой главе. Он должен помочь вам лучше понять предварительное и последующее увеличение и другие выражения:
<?
function double($i) // функция удваивания переменной
{
return $i*2;
}$b = $а = 5; // присваиваем значения переменным $а и $b
$с = $а++; // последующее увеличение, присваиваем $с
// начальное значение $а (5)
$е = $d = ++$b; // предварительное увеличение, присваиваем $d и $е
// увеличенное значение $b (6)
// тут и $d, и $е равны 6
$f = double($d++); // присваиваем удвоенное значение $d
//до его увеличения,
//т.е. 2*6 =12, переменной $f
$g = double(++$e); // присваиваем удвоенное значение $е
// после его увеличения,
//т.е. 2*7 = 14, переменной $e
$h = $e += 10; // сначала увеличиваем значение $e на 10,
// что дает в результате 24, а затем присваиваем
// это значение переменной $h, что также дает 24
?>
Выражения могут быть операторами. Впрочем, не каждое выражения является оператором. В данном примере оператор имеет форму выражение ;,т. е. выражение, за которым следуетточка с запятой. В $b = $а = 5; $а = 5 — это правильное выражение, но само по себе оно не является оператором. А вот $b = $а = 5; является правильным оператором.