PHP 4 на практике
Глава 2
Переменные и типы данных Типы данных составляют основу любого языка программирования и являются средством, с помощью которого программист представляет разные типы информации. В РНР поддерживаются
Целые числа
Целое число не имеет дробной части и представляется последовательностью из одной или нескольких цифр. Примеры целых чисел: 5 591 52
Восьмеричная и шестнадцатеричная запись
В РНР поддерживается запись целых чисел в восьмеричной (по основанию 8) и шестнадцатеричной (по основанию 16) системах счисления. Восьмеричные числа начинаются с цифры 0, после которой следует сер
Вещественные числа
Вещественные числа (числа с плавающей точкой) отличаются от целых наличием дробной части. Они используются для представления значений, требующих повышенной точности, — например, температур или ден
Стандартная запись
Стандартная запись удобна для представления типичных вещественных чисел — скажем, денежных величин. Примеры: 12.45 98.6
Научная запись
Научная запись лучше подходит для представления очень больших и очень малых чисел — скажем, межпланетных расстояний или размеров атомов. Примеры: Зе8 5.9736е24
Строковые значения
Строкой (string) называется последовательность символов, которая рассматривается как единое целое, но при этом обеспечивает доступ к отдельным символам. Примеры строк: thesaurus 49ers abc %/$# Обр
Строковое присваивание
Строки делятся на две категории в зависимости от типа ограничителя — они могут ограничиваться парой кавычек ( ) или апострофов (' '). Между этими категориями существуют два принципиальных различия
Синтаксис встроенной документации
Второй вариант синтаксиса ограничения строк, представленный в HTML4, называется встроенной документацией (here doc). В этом варианте синтаксиса строка начинается с символов , за которыми следует н
Обращение к отдельным символам строк
К отдельным символам строки можно обращаться как к элементам массива с последовательной нумерацией (см. следующий раздел). Пример: $sequence_number = 04efgh; $letter = Ssequence_number[4]; Перемен
Массивы
Массив представляет собой список однотипных элементов. Существует два типа массивов, различающиеся по способу идентификации элементов. В массивах первого типа элемент определяется индексом в после
Одномерные индексируемые массивы
При обращении к элементам одномерных индексируемых массивов используется целочисленный индекс, определяющий позицию заданного элемента. Обобщенный синтаксис элементов одномерного массива: $имя[инд
Одномерные ассоциативные массивы
Ассоциативные массивы особенно удобны в ситуациях, когда элементы массива удобнее связывать со словами, а не с числами. Предположим, вы хотите сохранить в массиве лучшие сочетания вин и блюд. Прощ
Многомерные индексируемые массивы
Многомерные индексируемые массивы работают практически так же, как и их одномерные прототипы, однако элементы в них определяются несколькими индексами вместо одного. Теоретически размерность индек
Многомерные ассоциативные массивы
Многомерные ассоциативные массивы также существуют в РНР (и приносят определенную пользу). Допустим, в массиве $раirings из предыдущего примера должна храниться информация не только о сорте, но и
Смешанное индексирование
В многомерных массивах допускается смешанное индексирование (числовое и ассоциативное). Допустим, вы хотите расширить модель одномерного ассоциативного массива для хранения информации об игроках п
Объекты
К пятому типу данных РНР относятся объекты. Объект представляет собой переменную, экземпляр которой создается по специальному шаблону, называемому классом. Концепции объектов и классов являются не
Логические величины (истина/ложь)
Логический тип данных принимает всего два значения: истинное (true) и ложное (false). Логические величины создаются двумя способами: при проверке условий и в виде значений переменных. Обе ситуации
Идентификаторы
Общий термин идентификатор применяется к переменным, функциям и другим объектам, определяемым пользователем. Идентификаторы РНР должны удовлетворять нескольким условиям: Идентификатор состоит из о
Переменные
В примерах, приведенных выше, я попутно показал, как происходит присваивание и изменение значений переменных. И все же стоит четко сформулировать правила объявления переменных и выполнения операци
Объявление переменных
Переменная представляет собой именованную область памяти, содержащую данные, с которыми можно выполнять операции во время выполнения программы. Имена переменных всегда начинаются со знака доллара,
Область видимости переменных
Область видимости (scope) определяется как область доступности переменной в той программе, в которой она была объявлена. В зависимости от области видимости переменные РНР делятся на четыре типа: л
Статические переменные
Последний тип видимости переменных называется статическим. В отличие от переменных, объявленных параметрами и уничтожаемых при выходе из функции, статическая переменная сохраняет свое значение при
Переключение типов
Иногда бывает удобно использовать переменные способами, не предусмотренными при их создании. Допустим, вам захочется прибавить строковое значение 15 к целому числу 12. К счастью, тип переменных РН
Преобразование типов
Явное приведение переменной к типу, отличному от того, который изначально предназначался для нее, называется преобразованием (casting) типа. Изменение типа может быть как временным, одноразовым, т
Присваивание
Вы уже знаете, как присвоить значение переменной в сценарии РНР. Тем не менее, некоторые тонкости, связанные с присваиванием, стоит выделить особо. Вероятно, вам хорошо знаком механизм присваивани
Присваивание по значению
Это самый распространенный способ присваивания, при котором значение просто заносится в область памяти, представленную именем переменной. Примеры присваивания по значению: $vehicle = car; $amount
Присваивание по ссылке
Другой способ заключается в присваивании переменной ссылки на область памяти, занимаемую другой переменной. Вместо конкретного значения переменная-приемник связывается с указателем (или ссылкой) н
Переменные в переменных
В некоторых ситуациях бывает удобно использовать переменные, содержимое которых может динамически интерпретироваться как имя другой переменной. Рассмотрим типичный случай присваивания: $recipe = s
Стандартные переменные
В РНР поддерживается ряд стандартных переменных, предоставляющих в распоряжение программиста довольно подробную информацию о внутренней конфигурации. Значения одних переменных задаются РНР, другие
Константы
Константой называется именованная величина, которая не изменяется в процессе выполнения программы. Константы особенно удобны при работе с заведомо постоянными величинами — например, числом (3,1415
Итоги
Итоги В этой главе был изложен довольно обширный материал, необходимый для понимания и самостоятельного написания простых программ на РНР. В частности, мы рассмотрели следующие темы: допустимые тип