Поиск

Типы переменных

В этой книге рассматриваются три самых распространенных типа перемен ных: числа, строки и массивы.

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

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

Числа

Для простоты обучения мы объединили два вида чисел целые и с плавающей запятой в одну группу. Целые числа могут быть положительными или отрица тельными, но не дробными. Числа с десятичным знаком (даже такие как 1.0) это числа с плавающей запятой. Числа с плавающей запятой используются для дробных чисел, так как в РНР единственный способ выразить дробь конверти ровать ее в десятичный эквивалент. Так, число «1 1/4» будет записано как «1.25».

Примеры целых чисел:
1
1972
1
Примеры чисел с плавающей точкой:
1.0
19.72
1.0

Так как оба типа называются у нас числами, любая из вышеприведенных записей будет правильной.

Примеры неправильного обозначения чисел:

1 1 / 4
1972а
02.23.72 . . . . . .

Дробь содержит два не используемых в числах знака: пробел и слеш (/). Вто рое значение неверно, потому что включает цифры и буквы. Это приемлемо для имени переменной, но не для ее значения. Третий пример неверен, так как в нем используются два десятичных знака. Если по какимлибо причинам (но не для вычислений) необходимо использовать одно из этих значений, можно обозначить его как строку.

Строки

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

"Hello, world!"
"Hello,. $FirstName!"
"1 1/4"
"Hello/ world! How are you today?"
"02.23.72"
«1972"

Обратите внимание на то, что в последнем примере мы превратили целое число в переменную, взяв его в кавычки. На самом деле строка содержит сим волы «1972», а число равно 1972. Язык РНР позволяет использовать такие чис ловые строки непосредственно в математических выражениях. Примеры неверных значений строк:

Hello, world!
"I said, "How are you?""

Первый пример неверен, так как текст не взят в кавычки. Второй пример достаточно коварен. Если присвоить строке такое значение, то возникнут проблемы, ведь при прочтении вторых кавычек РНР «предположит», что стро ка закончена, и последующий текст вызовет ошибку.

Вы можете поинтересоваться, как использовать кавычки внутри строки? Как было описано в главе 1, при использовании функции print () для создания кода HTML можно экранировать кавычки, поставив перед ними обратный слеш. Изме нив строку на " I said, \" How are you? \ " " , вы дали команду РНР включить эти ка вычки как часть значения строки, а не рассматривать их как индикаторы начала и конца строки. Поэтому, хотя и любая комбинация символов может быть вклю чена в строку, специальные символы должны быть экранированы для коррект ного выполнения строки. Вместе с двойными кавычками следует также экраниро вать апостроф или одинарные кавычки ( ' ) , обратный слеш (\) и знак доллара ($).

Двойные кавычки имеют бесспорное преимущество перед одинарными: значение переменной будет распечатано только при использовании первых. Если вы рабо таете с одинарными кавычками, то строка 'Hello, $FirstName!'; вызовет пе чать Hello, $FirstName! вместо, скажем, Hello, Larry! (если вы заранее присвоили переменной $FirstName значение Larry). Если экранировать знак доллара в двойных кавычках (print "Hello, $FirstName!",), то снова будет распечатано имя переменной, а не ее значение (Hello, $FirstName!).

Выше мы рассматривали, как создать новую строку с помощью символа \п. Хотя обратный слеш используется для экранирования некоторых специальных симво лов, в сочетании с некоторыми буквами он имеет особое значение. Так, комбина ция "\п" означает новую строку, " \ г " возврат каретки, a " \ t " знак табуляции.

Массивы

Более подробно массивы будут рассмотрены в главе 6, так как они более слож ны, чем числа или строки, но вкратце охарактеризуем их и здесь. Строка и число обычно содержат одно значение, а массив может иметь несколько определенных

для него значений. Разумно представить массив в виде списка значений. Дру гими словами, в него можно вложить множество строк и/или чисел. Разреша ется вкладывать и множество массивов в один!

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