Урок 2. Типы данных в php: вещественные, целые числа, строки, массивы, объекты, логические величины

В этом уроке мы поближе познакомимся с типами данных и переменными в PHP.  Это нужно для того, чтобы мы смогли лучше понять сценарий, приведенный в предыдущем уроке, узнать, что и как работает,  каким образом модифицировать код.

Теперь поговорим о типах данных в php. Языки программирования можно разделить на две группы: языки с динамической типизацией и языки со статической типизацией.  PHP принадлежит к первой группе, то есть — это язык с динамической типизацией. Это значит то, что в php существуют различные типы данных:

— Вещественные числа (real);
— Целые числа (integer);
— Строки (string);
— Массивы (array);
— Обьекты (object);
— Логические величины (boolean).

1. Вещественные числа (real);

Вещественные числа – это числа, в которых есть дробная часть (их также называют числами с плавающей точкой). Зачем использовать вещественные числа в PHP? Дело в том, что целые числа не всегда подходят для расчетов. Иногда, нам нужны более точные измерения, например, измерение температуры или финансовые расчеты,  при которых указываются дробные части. Обратите внимание на то, что для отделения дробной части от целой в php следует использовать точку, а не запятую!!!

Примеры:

1.245

156.12

2. Целые числа (integer);

Целое число – это последовательность из одной или нескольких цифр  без дробной части. Запись целого числа в PHP может быть разной:

Обычная десятеричная система счисления

9

Шестнадцатеричная система (когда число начинается с 0x )-

0x1A

Восьмеричная система (число начинается с 0)-

0123

Целые числа в php могут быть как положительным так и отрицательными, в зависимости от того какой знак – «плюс» или «минус» стоит перед ними.

3. Строки (string);

Что такое строка в php? Это последовательный набор символов, который является одним целым, но при этом имеется доступ к символам, входящим в этот набор. Строки в php, как правило, не используют для вычислений, а служат для передачи смысловой нагрузки. Вот несколько примеров строк:

  Hello

—  Пример

—  90crossroads

—  &/#@^^

При программировании на php все строки можно разделить на 3 виды:

1). Строки, обрамлены одинарными кавычками (апострофами);

2). Строки, обрамлены двойными кавычками;

3). Встроенные документы.

При использовании строкового значения в программе, его нужно заключать в кавычки, либо же использовать синтаксис встроенной документации.  Php, как уже было сказано раньше, является языком с динамической типизацией.  Данный тип языков программирования в свою очередь делится на две группы:

строго типизированные (в этих языках веб программирования строго ограничены операции с разнотипными данными, например сложение целого числа и строки);

слабо типизированные (в таких языках операции с разнотипными данными возможны).

Так вот, php — это язык со слабой типизацией.

Например, если взять любое число, и заключить его в кавычки, то данная последовательность будет воспринята интерпретатором php как строка, а не как число. Но здесь следует заметить, что пи сложении, например строки “100” и числа 10  мы получим результат – 110. Вывод следующий – php сам определяет тип данных и потом проводит соответствующие операции. Эту особенность надо иметь в виду при программировании на php.

Сейчас мы рассмотрим разницу между использованием двойных и одинарных кавычек в php. Этот материал очень важен, так как неправильный выбор кавычек в некоторых случаях может привести к неработоспособности веб-приложения.

Внутри двойных кавычек – происходит интерпретация переменных,  в результате чего на выходе мы получаем их значения;

Внутри  одинарных кавычек – переменные не интерпретируются, то есть строка пишется как есть.

Закрепим теорию на практике:

$name1=”Sasha”;

$name2=’Sasha’;

echo $name1;

echo $name2;

Мы получим один и тот же результат — Sasha , так как в строках нету переменных.

Рассмотрим еще один пример:

$name=”Sasha”;

$sentence1=”Его зовут $name”;

$sentence2=’Его зовут $name’;

echo $sentence1;

echo $sentence2;

В первом случае мы получаем —  Его зовут Sasha, а во втором —  Его зовут  $name.

Нужно всегда помнить это различие, дабы избежать ошибок в коде.

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

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

Иногда возникает ситуация, когда на экран надо вывести сам служебный символ так, чтобы он не интерпретировался.  Для этого используют операцию экранирования – добавление перед  символом обратной косой черты- \.

Пример экранирования:

Пример экранирования в php

В результате выполнения данного php скрипта мы получим следующее:

Символ перевода строки: \n.

Как мы видим, одна из обратных косых черт исчезла, так как она была служебным символом, который отвечал за то, чтобы на экране было видно только то, что задумал веб-программист.

Аналогичным образом экранируются и другие служебные символы представлены в таблице выше.

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

Рассмотрим вот такой скрипт:

Экранирование кавычек в php

Данный код php вызовет ошибку, почему так? Дело в том, что когда интерпретатор обрабатывает этот скрипт, он считает, что строковое выражение заканчивается после второй кавычки. После него согласно синтаксису языка программирования php должно идти либо продолжение выражения, либо его ограничитель. Вместо этого в коде идет слово  — Бойцовский, что и заставляет интерпретатор выдать ошибку.

Как решить эту проблему? Здесь есть 2 варианта:

1. Можно экранировать внутренние кавычки с помощью обратных косых черт;
2. Либо же надо заменить внутренние или внешние  двойные кавычки на одинарные.

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

Примеры экранирования кавычек в php

В результате выполнения скрипта мы получим следующий результат:

Фильм называется  ”Бойцовский клуб”, я смотрел его в прошлом году.

Фильм называется  “$book”, я смотрел его в прошлом году.

Фильм называется  ‘Бойцовский клуб’, я смотрел его в прошлом году.

Как видим из примера, наиболее подходящим вариантом в данном конкретном случае является метод экранирования внутренних двойных кавычек.

Третьим видом строковых значений  после строк с одинарными и двойными кавычками следует встроенная документация (от англ. Heredoc). Строковое значение ограничивается с помощью символа Символ heredocи двух идентификаторов, которые являются произвольными.

Например:

Встроенная документация в php

Результат исполнения скрипта:

Вы видите пример строки с “неэкранированными кавычками” и

переводом строки. Переменная.

В примере были использованы произвольные  идентификаторы Идентификаторы heredoc. Использование встроенной документации очень удобно при встраивании в сценарии больших кусков текста.

4.Массивы (array);

Что такое массив в php? Массив (от англ. array) — это список элементов одного типа.  В php cуществуют 3 вида массивов:

— Индексируемые;

— Ассоциативные;

— Смешанные.

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

$player[0] = “Криштиану Роналду”;

$player[1] = “Виейра Марсело”;

Более подробно массивы будут рассмотрены в следующих уроках.

5.Объекты (object);

Обьекты – это еще однин тип данных в языке программирования php. Обьекты в php невозможно рассматривать без знакомства с ООП (обьектно-ориентированным программированием). Обьекты, как и массивы, будут детально рассмотрены в наших следующих уроках.

6.Логические величины (boolean);

Этот тип данных по праву считают одним из самых простых в PHP, так как он может иметь только одно из двух значений — либо значение истина (англ. true), либо ложь (англ. false).  Логические величины или как их еще называют, булевы, могут использоваться двумя способами —  как результат логических операций или как значения переменных. При использовании логических величин как переменных, ключевые регистронезависимые слова TRUE и FALSE являются их значениями. Пример:

$example = TRUE;

В данном случае переменная $example имеет значение TRUE и в то же время является истиной. В программировании на php очень часто применяют логические операции, где используются логические величины.  Возможно, вы уже знакомы с условными управляющими конструкциями, которые основаны на логических величинах.  Пример:

If ($example ==10){

$word=TRUE;

}

В чем суть этого кода? Он проверяет, равна ли переменная $ example  числу 10. Если это так, то сравнение  $example ==10 возвращает значение TRUE, при этом выполняется код в фигурных скобках. В ином случае сравнение возвращает FALSE и как следствие код заключенный в фигурные скобки не исполняется.

Кроме двух ключевых слов TRUE и FALSE в языке программирования php предусмотрены и другие варианты конвертации различных типов данных в логические величины.  В следующей таблице Вы сможете ознакомиться с типами данных, значения которых интерпретируются как FALSE или TRUE.

Интерпретация типов данных как true или false

Как можно использовать данные из таблицы?

Их значения можно присваивать переменным  и использовать их в логических операциях.

Пример:

Пример логической операции в php

В первой строке кода переменной $example было присвоено значение 0. Дальше скрипт проверяет значение переменной $example и выводит строку $example=FALSE, потому что значение  $example равняется нулю.  Где здесь логическая операция? Дело в том, что выражение if($example) представляет собой скороченный вариант логической операции —  if($example==TRUE).

Обратите внимание, в примере есть операция экранирования, перед знаками доллара была использована обратная косая черта, в результате мы вывели имя переменной, а не ее значение.