Итак, на прошлом уроке я обещал начать урок 3 с изучения следующего, четвертого типа данных - массива (три предыдущих см. в уроке 1). Ну что ж, приступим.
По сути, массив (array) можно представить в виде таблицы.
Вся эта таблица - массив, назовем его 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) {
команды цикла ;
}
Отличие последних двух выражений заключается в том, что при использовании выражения типа $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.