Информационные технологииStfw.Ru 🔍

Выражения

Синтаксис языка и операторы
🕛 01.11.2006, 12:57
Выражения - это «все то, что имеет значение». Наиболее простые примеры - константы и переменные. Например, запись $а =5 присваивает переменной $а целочисленную константу со значением 5. Теперь $а имеет значение 5, и при следующем присваивании: $b = $а оно воспринимается как $b = 5.

Более сложными выражениями являются функции. Например, мы имеем функцию:

function foo (){ return 5- }

Тогда запись $с = foo() означает то же, что и $с = 5. Функции - это выражения, имеющие возвращаемое ими значение.

Значения, конечно, могут быть и не только числовыми. РНР поддерживает три скалярных типа: целые числа, дробные числа и строки (скаляры, в отличие от массивов и объектов, неделимы). РНР также поддерживает два композитных типа (не скаляры): массивы и объекты. Значения любых типов могут быть присвоены любой переменной или возвращены из функций.

РНР является языком, ориентированным на выражения, в том смысле, что почти «все есть выражение». В приведенном выше примере $а = 5 имеется и третье выражение присваивания «=», объединяющее правое и левое выражение? которое также равно здесь пяти. То есть запись $b = ($а = 5) подобна записи $а = 5: $b = 5;, а так как присваивания обрабатываются справа налево, то можно также написать $b = $а = 5.

Хорошими примерами ориентации на выражения являются также операторы пре- и постинкремента и декремента. Так. выражение $а-<-+ имеет значение $а, а -н-$а имеет значение $а + 1 (по аналогии с С). Операторы «прибавления» (+= и -=) и другие операторы этого типа (*=, /=, Х~, &=, ~= и т. п.), по аналогии с инкрементом/декрементом, также являются выражениями (к примеру, возможна запись: $х = ($а += 3), являющаяся сокращением $а = $а + 3; $х = $а;).

Достаточно распространены выражения сравнения, возвращающие О либо 1 (что соответствует FALSE либо TRUE). Обычно такие выражения используются в управляющих структурах.

Еще одно выражение - структура условной альтернативы (которая существует в С).

Sfirst ? Ssecond . Sthird

Значение этого выражения зависит от значения переменной Sfirst: если оно истинно (не ноль), то используется значение переменной $second, в противном случае - Ithird.
echo ( 3 ? "Яблоко" : "Апельсин"). // напечатает: Яблоко
function double($i) { // возвращает удвоенное значение аргумента
return $i*2: }
$b * Sa = 5: /* назначить значение 5
переменным $а и $b */ $с "
$а++: /* аналогично: $с = $а: $а = $а + 1: */
$е = $d = ++$b: // преинкремент сперев увеличивает $b на 1
// сейчас $е и $d равны б
$f = double($d++): /* присвоить 2*6 =
12 переменной $f */ $g = double(->-+$e): /* присвоить 2*7 -= 14 переменной
$g */ $h = $g += 10; /* увеличить $g
на 10 (равно 24); // затем присвоить (24) $h

Так как РНР имеет бинарный тип (boolean), в условных структурах выражения приводятся к взаимоисключающему значению TRUE либо FALSE следующим образом: всякое численное выражение, не равное нулю, тождественно TRUE, а ноль - FALSE; отрицательные числа также - TRUE; пустая строка и строка «О» - FALSE, все другие строки - TRUE; не скаляры (массивы и объекты) имеют значение TRUE, если содержат хоть один элемент. (Такие же правила использует Perl.)

Учебник по основам PHP   Теги:

Читать IT-новости в Telegram
Информационные технологии
Мы в соцсетях ✉