Версия для печати

Урок 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.

Назад, на урок 2

Дальше, на урок 4 

Назад

Hosted by uCoz