PHP: Выражения
Автор: | Артемьев Сергей Игоревич |
ICQ: | 438856621 |
email: | _spin_@bk.ru |
Выражения в PHP - один из основополагающих элементов. Всё, что вы пишете - это выражения. Иными словами, выражение - это всё, что имеет значение. Для практической работы очень важно понимать как принципы построения выражений так и то, как их анализирует и исполняет PHP.
Самое простое выражение в PHP - присвоение значения.
$var = 'value';
Это выражение читается как "переменной с именем $var присвоить значение 'value'" или "для переменной с именем $var установить значение 'value'".
Все выражения в PHP должны завершаться точкой с запятой, а части выражения разделаются операторами. Если точки с запятой или оператора нет - компилятор выдаст ошибку.
В общем виде простые выражения PHP можно представить в виде схемы:
<оператор> <переменная> <оператор> <значение> <;>
В выражениях PHP, строго говоря, все элемены являются необязательными, кроме точки с запятой. Но если какой-то элемент есть, то должны быть и все элемены, которые должны быть по схеме слева.
Например, все эти выражения допустимы (хотя и не все имеют смысл):
<?php ; // пустой оператор $var1; $var1++; $var1 = 'value'; ?>
Можно писать в одну строку множество выражений, просто разделяя их точкой с запятой. Например, следующие два блока совершенно одинаковы с точки зрения PHP:
<?php $var1 = 'вася'; $var2 = 'петя'; $var3 = 'коля'; ?> <?php $var1 = 'вася'; $var2 = 'петя'; $var3 = 'коля'; ?>
А эта строка вызовет ошибку. Интерпретатор не cможет правильно определить границы и будет считать всю строку одним некорректным выражением, т.к. нет операторов-разделителей между отдельными блоками.
<?php $var1 = 'вася' $var2 = 'петя' $var3 = 'коля' ?>
Важное свойство выражений - возможность встраивания их одно в другое. Т.е. выражение может быть частью другого, более крупного, выражения, например, фрагмент
<?php $n = 'Вася'; $f = ' Иванов'; $result = $n . $f; echo $result; ?>
полностью аналогичен этому фрагменту
<?php $result = ($n = 'Вася') . ($f = ' Иванов'); echo $result; ?>
Оператор "." (точка) используется в PHP для объединения двух строк в одну.
Составные выражения интерпретатор анализирует, выбирает наиболее глубоко вложеные выражения и выполняет их. После этого подставляет результаты в более крупное выражение, вычислят их и т.д, пока не будет вычислено всё выражение.
Последовательность выполнения выражений одного уровня определяется старшинством (приоритетом) операторов, используемых в выражениях. Старшинство операторов PHP мы подробно рассмотрим в начале следующей главы. Строго говоря, почти половину материала вы уже знаете из школьного курса математики :).
Например, при выполнении кода
$k = 3; $n = (($f = 1000/$k + 3) > 100); echo $n;
PHP следает следующие шаги:
- Шаг 1: $k = 3;
- Шаг 2: $t1 = 1000/$k
- Шаг 3: $t2 = $t1 + 3
- Шаг 4: $f = $t2
- Шаг 5: $t3 = ($f > 100)
- Шаг 6: $n = $t3
- Шаг 7: echo $n
Все выражения PHP разделяются на две больших группы (по типу значений): скалярные и комплексные. К скалярным значениям относятся только те, которые нельзя "разобрать" на осмысленные составляющие. Пример скалярного значения - строка. Конечно, можно разделить строку на отдельные символы, но это уже будет не строка, а бессмысленный набор символов.
Скалярные значения подразделяются на целочисленные, числовые с плавающей точкой, строковые и логические.Особенности работы PHP с различными типами значений мы рассмотрим в следующем уроке.
Примеры скалярных выражений:
// строковые $str = 'я - строка'; $str .= ' PHP'; // целочисленные $k = 3; $k += 10; // числовые с плавающей точкой $float = 11.23; $otherFloat = $float/100; // логические $x == $y; $z > 100;
Комплексные выражения могут быть разделены на части так, что каждая часть будет иметь какой-то смысл. Таких выражений в PHP 2: массивы и объекты, но о них мы поговорим в соответствующих уроках.