Логические величины (истина/ложь)
Логический тип данных принимает всего два значения: истинное (true) и ложное (false). Логические величины создаются двумя способами: при проверке условий и в виде значений переменных. Обе ситуации достаточно просты. Сравнения существуют в нескольких формах. Чаще всего они встречаются при использовании оператора = в условной команде if. Пример: if ($sum == 40): ... Результатом проверки является либо истина, либо ложь: переменная $sum либо равна 40, либо не равна. Если переменная $sum равна 40, проверка дает истинный результат. В противном случае результат равен false. Логические величины также могут определяться явным присваиванием переменной истинного или ложного значения. Пример: <? $flag = TRUE; if ($flag == TRUE) { echo "The flag is true!"; } else { echo "The flag is false!"; } ?>
Если переменная $flag истинна, выводится первое сообщение, а если ложна — второе сообщение. Возможен и другой вариант — представление истинных и ложных логических величин в виде значений 1 и 0 соответственно. В этом случае предыдущий пример выглядит так: <? $flag = 1; if ($flag == TRUE) { echo "The flag is true!"; } else { echo "The flag is false!"; } ?> Cуществует еще один способ: <? $flag = 0; // При выполнении этой команды косвенно // проверяется условие "if ($flag == TRUE)" if ($flag) { echo "The flag is true!"; } else { echo "The flag is false!"; } ?>
Преобразование типов
Явное приведение переменной к типу, отличному от того, который изначально предназначался для нее, называется преобразованием (casting) типа. Изменение типа может быть как временным, одноразовым, так и постоянным. Чтобы временно привести переменную к другому типу, достаточно воспользоваться оператором преобразования типа — указать нужный тип перед именем переменной в круглых скобках (табл. 2).
Таблица 2 Операторы преобразования типа переменных
Простой пример преобразования типов: $variable1= 13; // $variable1 присваивается целое число 13 $variable2 = (double) $variable1; // $variable2 присваивается 13.0 Хотя переменная $variable1 первоначально содержала целое число 13, преобразование (double) преобразует ее к вещественному типу (поэтому число 13 превращается в 13.0). Полученное значение присваивается переменной $variable2. Из предыдущего раздела вы знаете, что при суммировании целого числа с вещественным получается вещественный результат. Однако тип результата можно изменить посредством явного преобразования типа: $variablel = 4.0; $variable2 = 5; $variable3 = (int) $variable1 + $variable2; // $variable3 = 9 Следует заметить, что преобразование вещественного типа к целому всегда сопровождается округлением: $variablel = 14.7: $variable2 = (int) $varlable1; // $variable2 = 14: Строку или переменную другого типа также можно преобразовать в элемент массива. В этом случае преобразованная переменная становится первым элементом массива: $variable1 = 1114; $array1 = (array) $varable1; echo $array1[0]; // Выводится значение 1114 Наконец, любой тип данных можно преобразовать в объект. Переменная становится атрибутом объекта, и ей присваивается имя scalar: $model = "Toyota"; $new_obj = (object) $model; Ссылка на исходное строковое значение выглядит так: echo $new_obj->scalar;
Массивы Массив представляет собой список однотипных элементов. Существует два типа массивов, различающиеся по способу идентификации элементов. В массивах первого типа элемент определяется индексом в последовательности. Массивы второго типа имеют ассоциативную природу, и для обращения к элементам используются ключи, логически связанные со значениями. Впрочем, на практике операции с массивами обоих типов выполняются сходным образом. По размерности массивы делятся на одномерные и многомерные.
Одномерные индексируемые массивы При обращении к элементам одномерных индексируемых массивов используется целочисленный индекс, определяющий позицию заданного элемента. Обобщенный синтаксис элементов одномерного массива: $имя[индекс1]; Одномерные массивы создаются следующим образом: $meat[0] = "chicken"; $meat[l] = "steak"; $meat[2] = "turkey"; При выполнении следующей команды: echo $meat[1]: в браузере выводится строка steak При создании массивов также можно воспользоваться функцией array (). Массив $meat из предыдущего примера создается командой $meat = аrrау("chicken", "steak", "turkey"); Приведенная выше команда pri nt приводит к тому же результату — выводу строки steak. Чтобы включить новый элемент в конец массива, можно просто присвоить значение переменной массива без указания индекса. Следовательно, массив $meat можно создать еще одним способом: Smeat[] = "chicken"; $meat[] = "steak"; Smeat[] = "turkey"; Одномерные ассоциативные массивы Ассоциативные массивы особенно удобны в ситуациях, когда элементы массива удобнее связывать со словами, а не с числами. Предположим, вы хотите сохранить в массиве лучшие сочетания вин и блюд. Проще всего было бы хранить в массиве пары «ключ/значение» — например, присвоить сорт вина названию блюда. Самым разумным решением будет использование ассоциативного массива: Spairings["zinfandel"] = "Broiled Veal Chops"; $pairings["merlot"] = "Baked Ham"; $pairings["sauvignon"] = "Prime Rib"; $pairings["sauternes"] = "Roasted Salmon"; Ассоциативный массив заметно экономит время и объем программного кода, необходимого для вывода определенных элементов массива. Допустим, вы хотите узнать, с каким блюдом лучше всего идет «Мерло». Нужная информация выводится простой ссылкой на элемент массива $pairings: echo $pairings["merlot"]; // Выводится строка "Baked Ham" Ассоциативные массивы также можно создавать функцией РНР аггау(): Spairings = аrrау( zinfandel => "Broiled Veal Chops", merlot => "Baked Ham", sauvignon => "Prime Rib", sauternes => "Roasted Salmon"); Отличается только способ создания массива pairings, а функциональные возможности остаются без изменений.
Многомерные индексируемые массивы Многомерные индексируемые массивы работают практически так же, как и их одномерные прототипы, однако элементы в них определяются несколькими индексами вместо одного. Теоретически размерность индексируемого массива не ограничивается, хотя в большинстве приложений практически не встречаются массивы с размерностью выше 3. Обобщенный синтаксис элементов многомерного массива: $имя[индекс1][индекс2]..[индексN]; Пример ссылки на элемент двухмерного индексируемого массива: $position = $chess_board[5][4]; Многомерные ассоциативные массивы Многомерные ассоциативные массивы также существуют в РНР (и приносят определенную пользу). Допустим, в массиве $раirings из предыдущего примера должна храниться информация не только о сорте, но и о производителе вина. Это можно сделать следующим образом: $pairings["Martinelli"]["zinfandel"] = "Broiled Veal Chops"; $pairings["Beringer"]["merlot"] = "Baked Ham"; $pairings["Jarvis"]["sauvignon"] = "Prime Rib"; $pairings["Climens"]["sauternes"] = "Roasted Salmon"; Смешанное индексирование В многомерных массивах допускается смешанное индексирование (числовое и ассоциативное). Допустим, вы хотите расширить модель одномерного ассоциативного массива для хранения информации об игроках первого и второго состава футбольной команды. Решение может выглядеть следующим образом: $Buckeyes["quarterback"] [1] = "Bellisari"; $Buckeyes["quarterback"] [2] = "Moherman": $Buckeyes["quarterback"] [3] = "Wiley";
Далее приведен пример инициализации массива и вывода значений массива с соответствующем индексом. Такой вывод осуществляется функцией print_r (). <? $firstquarter = array(1 => 'Январь', 'Февраль', 'Март', 'Апрель', 'Май'); print_r($firstquarter); ?> Рис. 10. Результат работы программы с массивом
Операторы Оператор представляет собой символическое обозначение некоторого действия, выполняемого с операндами в выражении. Многие операторы известны любому программисту, но вы должны помнить, что РНР выполняет автоматическое преобразование типов на основании типа оператора, объединяющего два операнда, — в других языках программирования это происходит не всегда.
Приоритет и ассоциативность операторов являются важными характеристиками языка программирования (см. раздел «Ассоциативность операторов» этой главы). В табл. 3 приведен полный список всех операторов, упорядоченных по убыванию приоритета. Приоритет, ассоциативность и сами операторы подробно рассматриваются в разделах, следующих за таблицей.
Таблица 3 Операторы РНР
Математические операторы Математические операторы (табл. 4) предназначены для выполнения различных математических операций и часто применяются в большинстве программ РНР. К счастью, их использование обходится без проблем. Таблица 4 Математические операторы
РНР содержит широкий ассортимент стандартных математических функций для выполнения основных преобразований и вычисления логарифмов, квадратных корней, геометрических величин и т. д. За обновленным списком таких функций обращайтесь к документации. Операторы присваивания
Операторы присваивания задают новое значение переменной. В простейшем варианте оператор присваивания ограничивается изменением величины, в других вариантах (называемых сокращенными операторами присваивания) перед присваиванием выполняется некоторая операция. Примеры таких операторов приведены в табл. 5.
Таблица 5. Операторы присваивания
Умеренное использование операторов присваивания обеспечивает более наглядный и компактный код.
Строковые операторы
Строковые операторы РНР (табл. 6) обеспечивают удобные средства конкатенации (то есть слияния) строк. Существует два строковых оператора: оператор конкатенации (.) и оператор конкатенации с присваиванием (.=), описанный в предыдущем разделе «Операторы присваивания». Конкатенацией называется объединение двух и более объектов в единое целое.
Таблица 6 Строковые операторы
Пример использования строковых операторов: // $а присваивается строковое значение "Spaghetti & Meatballs" $а = "Spaghetti". "& Meatballs" // $а присваивается строковое значение "Spaghetti & Meatballs are delicious" $a.= "are delicious";
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|