Хитрость с ключами. Как еще можно создать массив. Все способы создания массива. Многомерный массив. Конструкция if-else. Сокращенный синтаксис
Хитрость с ключами Когда мы делали ассоциативный массив дней недели, нам приходилось расставлять все ключи вручную. И все для того, чтобы нумерация началась не с нуля, а с единицы. Это было немного неудобно. <? php //Укажем ключи в явном виде: $a = [1 => 'пн', 2 => 'вт', 3 => 'ср', 4 => 'чт', 5 => 'пт', 6 => 'сб', 7 => 'вс']; echo $a[3]; //выведет 'ср'? >На самом деле нет необходимости расставлять ключи всем элементам - достаточно только первому элементу поставить ключ 1. Если у второго элемента не будет ключа, PHP поставит его автоматически, причем следующий по порядку. А следующим номером будет как раз-таки число 2, так как предыдущий элемент имел ключ 1 (неважно, что мы сами его поставили, а не PHP автоматически). Давайте поправим наш массив: <? php //Укажем ключи в явном виде: $a = [1 => 'пн', 'вт', 'ср', 'чт', 'пт', 'сб', 'вс']; echo $a[3]; //выведет 'ср'? >Итак, этот массив с одним нашим ключом фактически будет таким же, как и массив со всеми ключами, но сделать его проще - ключ ставится только первому элементу, а не всем. Как еще можно создать массив Объявление массива с помощью команды [] не является единственным способом его создания. Можно просто присвоить значения элементам массива, не объявляя его через array (PHP нас поймет и сам создаст массив): <? php //Можно не писать [], а просто присвоить значения его элементам: $a[0] = 1; $a[1] = 2; $a[2] = 3; var_dump($a); //с помощью var_dump убеждаемся в том, что $a – это массив? >Естественно, ключи могут быть не только числовыми, но и текстовыми: <? php //Ключи могут быть строками: $a['Коля'] = 100; $a['Вася'] = 200; $a['Петя'] = 300; var_dump($a); //с помощью var_dump убеждаемся в том, что $a – это массив? >Кроме того, можно сделать так, что PHP сам добавит ключи (начиная с нуля и так далее). Для этого мы оставим квадратные скобки пустыми: $a[] = 1, а PHP сам добавит ключ. Пример:
Все способы создания массива <? php //Можно просто его объявить: $a = []; //Можно его сразу и заполнить: $a = [1, 2, 3]; //Можно не писать [], а просто присвоить значения его элементам: $a[0] = 1; $a[1] = 2; $a[2] = 3; //Можно даже не писать ключи, тогда PHP добавит их автоматически, начиная с нуля: $a[] = 1; $a[] = 2; $a[] = 3; ? >Многомерный массив Элементы массива могут быть не только строками и числами, но и массивами. То есть у нас получится массив массивов или многомерный массив. Давайте сделаем массив студентов $students, который будет содержать два подмассива: студенты мужского пола и женского: <? php //Многомерный массив студентов: $a = [ 'boys' => ['Коля', 'Вася', 'Петя'], 'girls' => ['Даша', 'Маша', 'Лена'], ];? >Чтобы вывести какой-либо элемент из многомерного массива следует писать уже не одну пару [ ], а две: $a['boys'][0] – так мы выведем 'Коля'
Конструкция if-else Для того, чтобы напрограммировать что-нибудь полезное, одних переменных далеко не достаточно. Нам нужен механизм, который позволит выполнять определенный код в зависимости от каких-либо условий. То есть нам нужно иметь возможность спросить у PHP 'Если'. Например так: если эта переменная меньше нуля, то вывести 'отрицательно', иначе (то есть если она больше нуля) вывести 'положительно'. В PHP для таких вопросов предназначена конструкция if, которая позволяет выполнять определенный код при выполнении какого-либо условия:
<? php if (логическое выражение) { Этот код выполниться, если логическое выражение верно (то есть равно true) } else { Этот код выполнится, если логическое выражение неверно (то есть равно false) } ? > Обратите внимание на то, что блок else не обязателен. Логическое выражение представляет собой тот самый вопрос, который мы хотим задать PHP. Например, чтобы спросить 'переменная $a больше нуля' мы напишем так: $a > 0. Примеры работы: <? php $a = 3;
/* Если переменная $a больше нуля, то выведи 'верно', иначе (если меньше или равна нулю) выведи 'неверно' */ if ($a > 0) {echo 'Верно! '; } else {echo 'Неверно! '; } //выведет 'Верно! ' ? > <? php $a = - 3;
/* Если переменная $a больше или равна нулю, то выведи 'верно', иначе (если меньше нуля) выведи 'неверно' */ if ($a > = 0) {echo 'Верно! '; } else {echo 'Неверно! '; } //выведет 'Неверно! ' ? > Сокращенный синтаксис В случае, если в фигурный скобках if или else будет только одно выражение, можно эти фигурные скобки не писать: <? php //Полный вариант: if ($a == 0) {echo 'Верно! '; } else {echo 'Неверно! '; }
//Уберем скобки после if: if ($a == 0) echo 'Верно! '; else {echo 'Неверно! '; }
//Уберем скобки после else: if ($a == 0) {echo 'Верно! '; } else echo 'Неверно! ';
/* Уберем скобки и после if, и после else (обратите внимание на точку с запятой - она осталась): */ if ($a == 0) echo 'Верно! '; else echo 'Неверно! '; ? > Равенство по значению и типу Для того, чтобы сравнить на равенство следует использовать оператор двойное равно ==, а не одиночное =, как можно было подумать. Почему так? Потому что одиночное равно зарезервировано за присваиванием. Смотрите пример: <? php $a = 0;
/* Если переменная $a равна нулю, то выведи 'верно', иначе (если не равна нулю) выведи 'неверно' */ if ($a == 0) echo 'Верно! '; else echo 'Неверно! '; //выведет 'Верно! ' ? > А следующий пример работать будет не так, как мы думаем: <? php $a = 0;
/* Мы думаем оно работает так: если переменная $a равна нулю, то выведи 'верно',
иначе (если не равна нулю) выведи 'неверно'.
На самом деле оно работает так: переменной $a присвоить 1, если удалось присвоить - то выведи 'верно', иначе (если не удалось присвоить) выведи 'неверно'. */
if ($a = 1) echo 'Верно! '; else echo 'Неверно! '; //всегда будет выводить 'Верно! ' ? > Кроме оператора == существует еще и оператор ===. Их различие в том, что === сравнивает не только по значению, но и по типу, а == сравнивает только по значению. Чтобы полностью разобраться в этом, внимательно изучите примеры: <? php $a = '0'; //переменная $a представляет собой строку, а не число 0 if ($a == 0) echo 'Верно! '; else echo 'Неверно! ';
/* Выведет 'Верно! ', так как проверяется только значение, но не тип. Поэтому '0' равен 0. */ ? > <? php $a = '0'; //переменная $a представляет собой строку, а не число 0 if ($a === 0) echo 'Верно! '; else echo 'Неверно! ';
/* Выведет 'Неверно! ', так как строка '0' не равна числу 0 при сравнении по типу. */ ? >
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|