Типы данных составляют основу любого языка программирования и являются средством, с помощью которого программист представляет разные типы информации. PHP поддерживает восемь простых типов данных (переменных).
Четыре скалярных типа:
Это простейший тип. Он выражает истинность значения — это может быть либо TRUE, либо FALSE. Чтобы определить булев тип, используйте ключевое слово TRUE или FALSE. Оба регистро-независимы.
Четыре скалярных типа:
- Тип boolean (двоичные данные)
Это простейший тип. Он выражает истинность значения — это может быть либо TRUE, либо FALSE. Чтобы определить булев тип, используйте ключевое слово TRUE или FALSE. Оба регистро-независимы.
<?php
$a = True; // присвоить $a значение TRUE
?>
- Тип integer (целые числа)
Целое это число из множества Z = {…, -2, -1, 0, 1, 2, …}, обычно длиной 32 бита (от –2 147 483 648 до 2 147 483 647). Целые могут быть указаны в десятичной, шестнадцатеричной или восьмеричной системе счисления.
<?php
$a = 1234; // десятичное число
$a = -123; // отрицательное число
$a = 0123; // восьмеричное число
$a = 0x1A; // шестнадцатеричное число
?>
- Тип float (числа с плавающей точкой или ‘double’)
Double — вещественное число довольно большой точности (ее должно хватить для подавляющего большинства математических вычислений). Числа с плавающей точкой (они же числа двойной точности или действительные числа) могут быть определены при помощи любого из следующих синтаксисов:
<?php
$a = 1.234;
$b = 1.2e3;
$c = 7E-10;
?>
- Тип string (строки)
Строка в PHP — это набор символов любой длины. Длина строки ограничена только размером свободной оперативной памяти. Строка легко может быть обработана при помощи стандартных функций, можно также непосредственно обратиться к любому ее символу.
<?
$a = "Это просто текст";
echo $a; //Выводит 'Это просто текст'
?>
Два смешанных типа:
Массив в PHP — это упорядоченный набор данных, в котором устанавлено соответствие между значением и ключом. Индекс (ключ) служит для однозначной идентификации элемента внутри массива. В одном массиве не может быть двух элементов с одинаковыми индексами.
Простой массив (список) пишется так:
- Тип array (массивы)
Массив в PHP — это упорядоченный набор данных, в котором устанавлено соответствие между значением и ключом. Индекс (ключ) служит для однозначной идентификации элемента внутри массива. В одном массиве не может быть двух элементов с одинаковыми индексами.
Простой массив (список) пишется так:
<?php
// Простой способ инициализации массива
$names[0]="Апельсин";
$names[1]="Банан";
$names[2]="Груша";
$names[3]="Помидор";
// names - имя массива
// 0, 1, 2, 3 - индексы
?>
- Тип object (объекты)
Объект является одним из базовых понятий объектно-ориентированного программирования. Внутренняя структура объекта похожа на хэш, за исключением того, что для доступа к отдельным элементам и функциям используется оператор ->, а не квадратные скобки. Для инициализации объекта используется выражение new, создающее в переменной экземпляр объекта.
<?php
class foo
{
function do_foo()
{
echo "Doing foo.";
}
}
$bar = new foo;
$bar->do_foo();
?>
Два специальных типа:
Ресурс — это специальная переменная, содержащая ссылку на внешний ресурс. Ресурсы создаются и используются специальными функциями.
Специальное значение NULL говорит о том, что эта переменная не имеет значения. NULL — это единственно возможное значение типа NULL (пустой тип).
Переменная считается NULL если:
unset() разрушает специфицированные переменные. unset() не true-функция: это оператор. Поскольку никакое значение не возвращается, попытка получить значение unset() даст ошибку разбора.
- Тип resource (ресурсы)
Ресурс — это специальная переменная, содержащая ссылку на внешний ресурс. Ресурсы создаются и используются специальными функциями.
- Тип NULL («пустой» тип)
Специальное значение NULL говорит о том, что эта переменная не имеет значения. NULL — это единственно возможное значение типа NULL (пустой тип).
Переменная считается NULL если:
- Присвоена константа NULL;
- Не было присвоено какое-либо значение;
- Была удалена с помощью unset().
unset() разрушает специфицированные переменные. unset() не true-функция: это оператор. Поскольку никакое значение не возвращается, попытка получить значение unset() даст ошибку разбора.
<?php
$var = NULL;
?>
Существуют также несколько псевдотипов:
mixed говорит о том, что параметр может принимать множество типов, но не обязательно все.
number говорит о том, что параметр может быть либо integer, либо float.
Некоторые функции принимают в качестве параметра определенные пользователем callback-функции. Callback-функции могут быть не только простыми функциями, но также методами объектов, включая статические методы классов.
PHP-функция передается просто как строка ее имени. Её можно передать в любую встроенную или определенную пользователем функцию за исключением array(), echo(), empty(), eval(), exit(), isset(), list(), print() и unset().
- Псевдотип mixed (смешанный)
mixed говорит о том, что параметр может принимать множество типов, но не обязательно все.
- Псевдотип number (числовой)
number говорит о том, что параметр может быть либо integer, либо float.
Некоторые функции принимают в качестве параметра определенные пользователем callback-функции. Callback-функции могут быть не только простыми функциями, но также методами объектов, включая статические методы классов.
PHP-функция передается просто как строка ее имени. Её можно передать в любую встроенную или определенную пользователем функцию за исключением array(), echo(), empty(), eval(), exit(), isset(), list(), print() и unset().
<?php
// простой пример callback
function my_callback_function() {
echo 'hello world!';
}
call_user_func('my_callback_function');
// примеры callback-метода
class MyClass {
function myCallbackMethod() {
echo 'Hello World!';
}
}
// вызов метода статического класса
//без создания объекта
call_user_func(array('MyClass', 'myCallbackMethod'));
// вызов метода объекта
$obj = new MyClass();
call_user_func(array(&$obj, 'myCallbackMethod'));
?>
Сегодня мы с рассмотрели «Типы данных (переменных) в PHP». Я не стал расписывать много про каждый тип. Для каждого типа написано краткое объяснение, этого хватит для понимания данной темы. Материал необходим для самостоятельного написания простых программ на PHP в наших последущих уроках. На следующем уроке мы подробнее рассмотрим массивы в PHP. Все вопросы пишите в коментариях и я постораюсь на них ответить.