Открылась Компьютерная Ярмарка Expo-com.ru на Тульской 
6000 кв.м, 20 000 покупателей в день.
Удачное расположение (м. "Тульская"), большой ассортимент, автостоянка, лифты, кафе, туалеты, телефонная связь, интернет. 
Арендаторам: 1 месяц бесплатно
Режим работы и проезд см. здесь >>
реклама у нас
***

PHP. Урок 2

Продолжение. Начало смотрите в более ранних выпусках IZone.

Автор: Владислав Путяк, clubwork@ukrpost.net, http://docs.h10.ru

Переменные и типы данных

Типы данных составляют основу любого языка программирования и являются средством, с помощью которого программист представляет разные типы информации. В РНР поддерживаются шесть основных типов данных:

  • целые числа;
  • вещественные числа;
  • строки;
  • массивы;
  • объекты;
  • логические величины.

Целые числа:

  • 5
  • 591

В РНР поддерживается запись целых чисел в восьмеричной и шестнадцатеричной системах счисления. Восьмеричные числа начинаются с цифры 0:

  • 0422
  • 0534

Шестнадцатеричные целые числа имеют префикс 0х или 0Х:

  • 0x3FF
  • 0x22abc

Вещественные числа

Вещественные числа отличаются от целых наличием дробной части. Они используются для представления значений, требующих повышенной точности, — например, температур или денежных величин. В РНР поддерживаются два вещественных формата: стандартная и научная (экспоненциальная) запись.

Стандартная запись

Стандартная запись удобна для представления типичных вещественных чисел — скажем, денежных величин:

  • 12.45
  • 98.6

Научная запись

Научная запись лучше подходит для представления очень больших и очень малых чисел — скажем, межпланетных расстояний или размеров атомов:

  • Зе8
  • 5.9736е24

Строковые значения

Строкой (string) называется последовательность символов, которая рассматривается как единое целое, но при этом обеспечивает доступ к отдельным символам:

  • thesaurus
  • 49ers
  • abc
  • &%/$#

Обратите внимание: в РНР не поддерживается символьный тип данных. Строковый тип может рассматриваться как единое представление для последовательностей, состоящих из одного или нескольких символов.

Строковое присваивание

Строки делятся на две категории в зависимости от типа ограничителя — они могут ограничиваться парой кавычек (" ") или апострофов (' '). Между этими категориями существуют два принципиальных различия. Во-первых, имена переменных в строках, заключенных в кавычки, заменяются соответствующими значениями, а строки в апострофах интерпретируются буквально, даже если в них присутствуют имена переменных,

Два следующих объявления дают одинаковый результат:

  • $food = "meatloaf";
  • $food = 'meatloaf';

Однако результаты следующих объявлений сильно различаются:

  • $sentence = "My favorite food is $food";
  • $sentence2 = 'My favorite food is $food';

Переменной $sentence присваивается строка

My favorite food is meatloaf.

Обратите внимание: переменная $food автоматически интерпретируется. С другой стороны, переменной $sentence2 присваивается строка

My favorite food is $food.

В отличие от переменной $sentence, в $sentence2 осталась не интерпретированная переменная $food. Различия обусловлены использованием кавычек и апострофов при присваивании переменным $sentence и $sentence2.

Прежде чем рассматривать второе фундаментальное различие между строками, заключенными в апострофы и в кавычки, необходимо познакомиться со служебными символами, используемыми в строках РНР. В РНР, как и в большинстве современных языков программирования, строки могут содержать служебные символы (например, символы табуляции или новой строки), перечисленные в табл. 2.1.

Таблица 2.1. Служебные символы в строках

Последовательность

Смысл

\n

Новая строка

\r

Возврат курсора

\t

Горизонтальная табуляция

\\

Обратная косая черта

\$

Знак доллара

\"

Кавычка

\[0-7]{1,3}

Восьмеричная запись числа (в виде регулярного выражения)

\x[0-9A-Fa-f]{l,2}

Шестнадцатеричная запись числа (в виде регулярного выражения)

Второе принципиальное различие заключается в том, что в строках, заключенных в кавычки, распознаются все существующие служебные символы, а в строках, заключенных в апострофы, — только служебные символы “\\” и “\”. Следующий пример наглядно демонстрирует различия между присваиванием строк, заключенных в кавычки и апострофы:

  • $double_list = "item1\nitem2\nitem2";
  • $single_list = 'item1\nitem2\nitem2';

Если вывести обе строки в браузере, окажется, что строка в кавычках содержит внутренние символы новой строки, а в строке в апострофах последовательность \n выводится как обычные символы. Хотя многие служебные символы в браузерах несущественны, при форматировании для других условий они играют очень важную роль. Помните об этом, выбирая между кавычками и апострофами, и вам удастся избежать многих неожиданностей.

Объявление переменных

Переменная представляет собой именованную область памяти, содержащую данные, с которыми можно выполнять операции во время выполнения программы.

Имена переменных всегда начинаются со знака доллара ($). Ниже приведены примеры допустимых имен переменных:

  • $соlоr
  • $operating_system
  • $_some_variable
  • $model

Имена переменных должны начинаться с буквы или символа подчеркивания и состоять из букв, символов подчеркивания, цифр или других ASCII-символов в интервале от 127 до 255.

Следует заметить, что переменные в РНР, как и в языке Perl, не требуют специального объявления. Вместо этого переменная объявляется при первом ее использовании в программе. Более того, тип переменной косвенно определяется по типу хранящихся в ней данных. Рассмотрим следующий пример:

  • $sentence = "This is a sentence."; // $sentence интерпретируется как строка
  • $price = 42.99: // $price интерпретируется как вещественное число
  • $weight = 185; // $weight интерпретируется как целое число

Переменные могут объявляться в любой точке сценария РНР, однако от расположения объявления зависит то, откуда можно обращаться к данной переменной.

Область видимости переменных

Область видимости определяется как область доступности переменной в той программе, в которой она была объявлена. В зависимости от области видимости переменные РНР делятся на четыре типа:

  • локальные переменные;
  • параметры функций;
  • глобальные переменные;
  • статические переменные.

Но это мы рассмотрим уже в следующем уроке.
 

***

***

Copyright © "Internet Zone"info@izcity.com. Условия использования материалов