Урок 3. Выражаемся по-ПиЭйчПовски
Верить в наше время нельзя никому. Даже себе. Мне - можно.
Итак, на прошлом уроке я обещал начать урок 3 с изучения следующего,
четвертого типа данных - массива (три предыдущих см. в уроке 1). Ну что ж,
приступим.
По сути, массив (array) можно представить в виде таблицы:
0 |
1 |
2 |
3 |
4 |
Вася |
Маша |
Дима |
Лена |
Андрей |
Вся эта таблица - массив, назовем его names. Таблица состоит из ячеек с
номерами от 0 до 4, в каждой ячейке имеется свое значение. Доступ к какому-либо
значению массива достигается следующим образом: $names[индекс], где
индекс в нашем примере - число от 0 до 4. Задаваться массив может несколькими
способами:
$names[0] = "Вася"; $names[1] =
"Маша"; // и так все другие
элементы // либо $names=array(0=>"Вася", 1=>"Маша", "Дима",
"Лена","Андрей"); /* в способе выше необязательно писать 0=>... и
1=>..., так как им автоматически присваиваются эти индексы по порядку (см.
аналог ниже) */ // либо $names[] = "Вася"; /* если индекс не
указан, присваивается индекс, на единицу больший максимального индекса до
операции*/ $names[] = "Маша"; |
Иногда использование массива с ключами в виде чисел 0,1,2... становится
неудобным. В этом случае создается ассоциативный массив. Ассоциативный массив -
это массив, в котором индекс не обязательно должен быть последовательным рядом
числовых значений. Индексом массива может быть любое число или строка. Например:
$a["мебель"] = "диван"; $fruits = array( 'банан' => 'желтый',
"помидор" => "красный" ); $months = array( array( 'январь', 'февраль' ),
"весна" => array("март","апрель","май")); |
Как видно выше, элементами массива могут быть не только константы и
переменные, но и массивы, которые имеют те же свойства, что и обыкновенные.
Элементами массива можно манипулировать, как и переменными.
Вот мы познакомились с основными типами данных в PHP. Но, согласитесь,
вводить данные, затем совершать на ними некоторые простенькие операции и
выводить их на экран - не очень интересно, да и не для этого PHP был разработан.
Теперь, когда мы познакомились с основами языка, переходим к более сложной, но
одновременно и более интересной части нашего обучения. И сегодня на уроке мы
рассмотрим основные управляющие конструкции PHP.
Управляющие конструкции.
Оператор условия IF.
Синтаксис:
IF (условие) { операции, выполняющиеся в
случае, если условие верно ; } else { операции,
выполняющиеся при неверном условии ; }
|
Логический оператор IF подобен выражению "Если ..., то ...,
иначе...". Оператор может существовать и в урезанном виде: без else и
последующих за ним операций. Тогда, если условие окажется неверным, оператор
никак не отреагирует .
Заметьте, что если оператор IF содержит только одну операцию,
заключенную в фигурные скобки, то эти скобки ставить необязательно.
Условием может быть любое выражение, способное возвращать значения либо TRUE
(правда), либо FALSE (ложь). Чаще всего в условии используются операторы
сравнения, например $a>0. Далее представлены другие возможные операторы
сравнения.
Операторы |
Значение |
== != , либо <> < > <= >= |
Проверка на равенство Не равно Меньше Больше Меньше
или равно Больше или равно |
Условий в операторе IF может несколько. Тогда они отделяются логическими
операторами. Ниже приведена таблица логических операторов.
Операторы |
Значение |
&& или AND || или OR XOR ! (напр.
!$a) |
Условие верно, если два выражения верны Условие верно, если
хотя бы одно выражение верно Верно, если только одно выражение
верно Условие верно, если выражение неверно |
Заметьте, что условием может выступать любая функция, возвращающая TRUE
в случае успешного выполнения, (такие функции можно посмотреть в Мануале или на этом сайте) или все
переменные, которые будут возвращать FALSE в случае, если переменная
равна нулю или вообще не имеет значения, и TRUE при всех других
значения.
Внутри оператора IF может быть вложен другой оператор IF. Тогда слово
ELSE заменяется на ELSEIF и далее по стандартному
синтаксису.
Пример:
if ( $a > 3 && $a <= 20 && $a !=
5) { $result = $a * $b ; echo
"Умножаем"; } elseif ( ($a > 20 || $a < 3 ) && $b
) { /* $b - то же самое, что и $b != 0 */
$result = $a / $b ; echo "Делим"; } else
echo "Invalid number" ;
| Оператор
выбора SWITCH.
Синтаксис:
switch (переменная или выражение) { case
условие :
команды
;
break; case условие
: команды
; break; // и так
далее } |
По сути, оператор SWITCH заменяет последовательность операторв IF...
ELSEIF... ELSEIF и так далее. Просто все это короче записывается и удобнее
читается.
Пример:
switch ( $a ) { case
(int)$a: echo "Число $a является
целым" ;
break; case "0"
: echo "Число $a равно нулю"
;
break; default
: echo "Число $a не равно
нулю"; //default - все другие
значения break; }
|
Цикл FOR.
Синтаксис:
for (выражение 1; выражение 2; выражение 3)
{ команды цикла ; }
|
Цикл FOR выполняет команды заданное количество раз. Как только выражения
начинают противоречить друг другу, цикл прекращает свою работу.
В циклах часто используются выражения следующего рода:
Выражения |
Эквивалент |
$a += 2 или $a -= 3 $a *= 10 или $a /=5 $a++
или $a-- ++$a или --$a |
$a = $a + 2 или $a = $a - 3 $a = $a * 10 или $a = $a /
5 $a = $a + 1 или $a= $a - 1 $a = $a + 1 или $a=
$a - 1 |
Отличие последних двух выражений заключается в том, что при использовании
выражения типа $a++ PHP сначала берет оригинальное значение, а затем увеличивает
его на единицу. А при использовании выражения вида ++$a значение переменной
сначала увеличивается, а затем уже берется это увеличенное значение.
Например:
<? $a=2; $a++; //значение
$a равно 2 echo $a; //значение $a равно 3 $a =
4; --$a;
//значение $a равно 3 echo $a; //значение $a по-прежнему равно
3 ?> |
Эти выражения могут использоваться как самостоятельные выражения вне
цикла.
Пример:
<? $p=0; for ($i = 1; $i <= 4; $i++) { $p +=
$i; echo "P равно $p \n" ; } ?>
|
Результат выполнения этой программы будет выглядеть так: P равно 1 P
равно 3 P равно 6 P равно 10
Цикл WHILE.
Синтаксис:
while (условие) { команды,
выполняющиеся при верности условия ; }
|
Цикл WHILE в отличие от цикла FOR используется в случае, если число
повторений выполнения команд неизвестно.
Пример:
<? $p = 10; $n = 0; while ($p <= 20)
{ $n++; $p+= 0.1*$p; } echo "Цикл выполнился
".$n." раз"; ?> |
Выше вы могли заметить новый оператор . (точка). Это так называемый оператор
"склеивания". Он работает только со строковыми типами данных.
На этом заканчиваем урок, а на следующем мы познакомимся с функциями PHP.
|