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

PHP описание Типы данных

Вступление

В PHP для определения типа переменной существует функция string gettype(mixed var), которая возвращает название типа переменной в виде строки: null, boolean, integer, string, double, array, object, resource.

Описание функции

Начиная с четвёртой версии присутствует функция gettype();,поддерживающая всего одно значение – проверяемую переменную или вручную прописанную цель. Возвращаемые ею строки представлены в следующем списке:

  • «boolean»– «Булев тип». Информация такого рода принимает вид «true» («истина») либо «ложь» («false»). Обычно используется в несложных проверках по одному критерию, но подходит и для более серьёзных задач.
  • «integer» – целое число, отрицательное или положительное. Может иметь любую длину. Записывается без кавычек, в большинстве IDE подчёркивается ярким цветом против более выдержанных палитр у строк.
  • «double» – число с «плавающей точкой» (десятичной дробью). Несмотря на использование термина «float» в большинстве других функций, для сохранения совместимости со старыми программами встречается только такое значение.
  • «string» – строка, что может содержать в себе буквы, спецсимволы и цифры. Заключается в кавычки, подойдёт для любых по длине текстов.
  • «array» – массив. Проще всего описать данный формат как аналог таблицы, предназначенный для удобной обработки компьютером. В PHP интегрированы инструменты перевода XML и JSON в собственную систему хранения подобной информации, особенностью которой является одновременная понятность и для людей, и для скриптов. Поддерживают разные форматы записи – пары «ключзначение» и «значение», могут указываться как и в форме array();,так и в квадратных скобках. Для вывода используется функция print_r();,которая, в отличие от echoи print, требует строгого соблюдения синтаксиса, характерного для остальных команд. Это связано с тем, что print_r();не является базовой единицей PHP.
  • «object» – объект. Для объединения фрагмента кода в рамках целой программы понадобятся классы, в которые входит этот род данных. Они обеспечивают более удобное чтение и редактирование скриптов, позволяя избежать задействование массы переменных с разными именами одновременно.
  • «resource» – особая переменная, не поддерживающая большинство стандартных методов взаимодействия. Используются в качестве команд для PHP при работе с плагинами – например, соединением с базой данных MySQL, открытием файловых хранилищ по FTP, верификации соединения по OpenSSL.
  • «resource (closed)» – ещё менее используемый вид данных, являющийся подтипом предыдущего и, в большинстве случаев, не используемый в создании скриптов.
  • «NULL» – нуль. Возвращается, когда переменная не объявлена или чётко указано, что её значение равно NULL. Пишется, в отличие от остальной информации, получаемой с помощью gettype();,большими буквами.
  • «unknowntype» – неизвестный вид. Возникает при затруднениях у интерпретатора в объяснении типа данных. До 7.2 версии такое значение возникало у закрытых ресурсов, которые после получили отдельное наименование.

Что такое типы данных

Каждая переменная и каждое значение в PHP имеет свой тип данных:

<?php $name = ‘Vasya’; // Строка $age = 20; // Целое число

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

PHP-МАСТЕР.
От теории до собственной CMS интернет-магазина
 

php.jpg

Подробнее

Бесплатный курс по PHP программированию


Подробнее

парный

Им нравится 3.14159 или 49.1. По умолчанию удваивается печать с минимальным количеством десятичных знаков. Например, код —

Live Demo

<?php $many =2.2888800; $many_2 =2.2111200; $few = $many + $many_2;print(«$many + $many_2 = $few <br>»);?>

Это производит следующий вывод браузера —

2.28888 + 2.21112 = 4.5

Работа с переменными

Создание

Чтобы не вызывать одну и ту же функцию каждый раз и избежать долгого выполнения скрипта вместе с невозможностью записать информацию следует обратить внимание на переменные, в PHP представленные крайне просто в отличие от остальных языков разработки. Здесь не нужно отдельно задавать их тип и устанавливать какие-либо флаги – форма создания выглядит так:

$variable = «something»;

Кавычки нужны для строк. Также можно привязать одну переменную к другой:

$variable_1 = $variable_2;

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

Редактирование

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

Присоединение

Случай похож на предыдущий, но вместо знака «=» используется «.=». В итоге,с помощью одного вызова можно будет получить несколько строкинформации. Внутри самих переменных присоединить что-либо можно знаком «.».

Удаление

Для того, чтобы убрать переменную, понадобится использовать unset();. Она может работать со сразу несколькими значениями. Для её задействования внутри составленной самостоятельно функции понадобится представить аргумент в качестве элемента супермассива $GLOBALS. Также есть способ привести что-либо к NULL, просто указав это в программе:

$variable = NULL;

Типы данных в PHP

В PHP существуют следующие основные типы данных:

Строка

Строки в PHP размещаются в одинарных или двойных кавычках. Главное различие в том, что в двойные кавычки можно подставить значение переменной, например:

<?php $name = ‘Петя’; echo ‘Привет, $name’; // Привет, $name echo «Привет, $name»; // Привет, Петя

Другие различия будут рассмотрены в отдельном уроке.

Для PHP 7+ 64-битных сборок нет ограничений на максимальную длину строки, для остальных она составляет 2Гб.

Булев тип

Значение булева типа может содержать в себе только true или false (истина или ложь).

$is_show = true;$can_move = false;

Булев тип удобно использовать для всяких флажков и статусов вроде отправлено/не отправлено, просмотрено/не просмотрено и т.д.

Целое число

Целое число — это число без дробной части:

<?php $price = 1500; $sale = -800;

Целые числа имеют следующие минимальные и максимальные значения:

  • От -2 147 483 648 до 2 147 483 647, т.е. ± 2 миллиарда для 32-битных версий PHP
  • От -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807, т.е. ± 9 квинтиллионов для 64-битных версий PHP

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

<?php $num = 1234; // десятичное число $num = 0123; // восьмеричное число (эквивалентно 83 в десятичной системе) $num = 0x1A; // шестнадцатеричное число (эквивалентно 26 в десятичной системе) $num = 0b11111111; // двоичное число (эквивалентно 255 в десятичной системе)

Дробное число

Разделителем дробной части в PHP является точка:

<?php $num = 15.28;

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

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

<?php$num1 = 1 + 2;$num2 = 0.1 + 0.2;var_dump($num1 == 3); // truevar_dump($num2 == 0.3); // false

Оператор сравнения == возвращает true или false если два значения соответственно равны или не равны.

В примере выше PHP считает верным выражение 1 + 2 == 3, но когда дело касается дробей, PHP не считает верным выражение 0.1 + 0.2 == 0.3.

Это происходит потому что дроби в PHP имеют ограниченную точность. В мозгах PHP результат выражения может быть чем-то вроде 3.000000000007.

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

<?php$num = bcadd(0.1, 0.2, 1); // 1 — число знаков после запятойvar_dump($num == 0.3); // true

В примере выше bcadd() приняла 2 дробных числа и количество знаков после запятой, в результате мы получили правильный ответ: 0.3.

Массив

Массив — это значение, которое может содержать в себе сразу несколько других значений:

<?php $array = [ ‘name’ => ‘Вася’, ‘age’ => 18 ]; echo $array[‘name’]; // Вася

Массивы будут подробно рассмотрены в уроке Массивы в PHP.

Объект

Объект — это часть сложной концепции под названием ООП (объектно-ориентированное программирование). Объект может иметь как собственные переменные, так и функции:

<?php class User { public $name; public $age; public function show() { echo $this->name, ‘ ‘, $this->age; } } $petya = new User; $petya->name = ‘Вася’; $petya->age = 18; $petya->show(); // Вася 18

Объекты будут подробно рассмотрены в будущем.

Ресурс

Ресурс — это специальная ссылка на какой-либо внешний ресурс, чаще всего файл или подключение к базе данных:

<?php $resource = fopen(‘D:OpenServerdomainstest.localfile.txt’, ‘r’);

В примере выше функция fopen возвращает ссылку на файл, которую затем можно использовать вместе с другими функциями для управления файлом.

NULL

NULL означает отсутствие значения:

<?php $var = null;

Немного подробнее про типы данных в PHP

Тип integer

Тип integer представляет целое число со знаком размером в 32 бита (от -2 147 483 648 до 2 147 483 647). PHP обладает возможностью кроме десятичных целых чисел использовать также двоичные, восьмеричные и шестнадцатеричные числа, но я на практике не встречал их использования. Обычно использую знакомую всем десятеричную систему.

Тип double

Размер числа с плавающей точкой double зависит от платформы, на которой работает PHP. Максимально возможное значение, как правило, составляет ~1.8e308 с точностью около 14 десятичных цифр. Но, опять же, на моей практике такие точные вычесления не производятся.

Тип string (строки)

Любой текст в PHP является типом string. Строки обязательно берутся в кавычки, двойные или одинарные. Между жвойными и одинарными кавычками есть отличия, переменные в строках в двойных кавычках заменяются их значениями, а переменные в строках в одинарных кавычках не заменяются.

Давайте рассмотрим пример, как работают с переменными строки в разных кавычках:

<?php$testing = 547;echo «Печатаем переменную $testing в строке обрамлённой двойными кавычками.»;echo ‘<br>Ещё раз печатаем переменную $testing, но строка в одинарных кавычках.’;

Строка обрамлённая двойными кавычками может содержать в себе двойные кавычки, которые нужно вывести в браузер. В этом случае перед ними ставят символ «». Например:

<?phpecho «Возьмём «СЛОВО» в кавычки.»;

На самом деле, работа со строками в PHP – отдельная большая тема.

Тип boolean

Тип boolean может иметь только два значения: true (истина) или false (ложь), но это очень важный тип (: . Логический тип используется для проверки истинности всевозможных сравнений. Например, выражение 5 19 ложно.

<?phpecho gettype( 5 > 7 ) . «<br>»; // integervar_dump( 5 > 7 ); // bool(false)

В этом примере я использовал функцию var_dump, о которой упоминал ранее. Также функции gettype я передал не переменную, а выражение, так можно делать.

Логические выражения, что есть истина и ложь в PHP – самом деле тема отдальной статьи. Если вы хотите освоить программирование на PHP, то вы обязательно должны хорошо знать этот тип данных.

Тип NULL

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

<?phpecho gettype( $testing ) . «<br>»; // NULL, переменная $testing не существует.$testing = NULL;echo gettype( $testing ) . «<br>»; // NULL

В PHP также есть возможность присваивать переменным тип NULL.

Остальные типы данных в PHP

Остальные типы данных: массивы в PHP, объекты в PHP и ресурсы требуют отдельного углублённого изучения.

Тип array (ассоциативные массивы)

Array (массив) — это составной тип данных, который может хранить несколько значений одного и того же типа данных.

В следующем примере $fruit — это массив:

<?php
$fruit = array(«apple»,»pear»,»plum»);
var_dump($fruit);
?>

Массив создается с помощью конструкции array(), в которой определяются элементов. Отсчет элементов в массиве начинается с нуля.

Object (объект) PHP

Объект — это тип данных, в котором хранятся данные и информация о том, как их обрабатывать.

В PHP объект должен быть объявлен явно.

Сначала мы должны объявить класс объекта. Для этого мы используем ключевое слово class. Класс — это структура, которая может содержать свойства и методы.

Классы и объекты — это два основных аспекта объектно-ориентированного программирования.

Класс — это шаблон для объектов, а объект — это экземпляр класса.

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

Предположим, у нас есть класс с именем Auto. Автомобиль может иметь такие свойства, как модель, цвет и т.д. Для хранения значений этих свойств мы можем определять такие переменные, как $model, $color и т.д.

При создании отдельных объектов (Volvo, BMW, Toyota и др.) они наследуют все свойства и поведение класса, но каждый объект будет иметь разные значения свойств.

Если вы создаете функцию __construct(), PHP будет автоматически вызывать эту функцию, когда вы создаете объект из класса:

<?php
class Auto {
  public $color;
  public $model;
  public function __construct($color, $model) {
   $this->color = $color;
   $this->model = $model;
  }
  public function message() {
    return «Мой автомобиль » . $this->color . » » . $this->model . «!»;
  }
}

$myAuto = new Auto(«синий», «Volvo»);

echo $myAuto -> message();
echo «<br>»;
$myAuto = new Auto(«красный», «Toyota»);
echo $myAuto -> message();
?>

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: