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

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

int (целочисленный тип)

Представляет целое число со знаком.

$num = -100;
echo $num;

Здесь переменная $num представляет целочисленный тип, так как ей присваивается целочисленное значение.
Кроме десятичных целых чисел PHP обладает возможностью использовать также двоичные, восьмеричные и шестнадцатеричные числа. Шаблоны чисел для других систем:
шестнадцатеричные : 0[xX][0-9a-fA-F]
восьмеричные : 0[0-7]
двоичные : 0b[01]
Например:

<?php
// Все числа в десятичной системе имеют значение 28
$num_10 = 28; // десятичное число
$num_2 = 0b11100; // двоичное число (28 в десятичной системе)
$num_8 = 034; // восьмеричное число (28 в десятичной)
$num_16 = 0x1C; // шестнадцатиричное число (28 в десятичной)
echo "num_10 = $num_10 <br>";
echo "num_2 = $num_2 <br>";
echo "num_8 = $num_8 <br>"; 
echo "num_16 = $num_16";
?>

Переменная типа int занимает в памяти 32 бита, то есть может принимаь значения от -2 147 483 648 до 2 147 483 647. Если переменная получает числовое значение вне этого диапазона, то она трактуется как переменная типа float

Тип float (числа с плавающей точкой)

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

<?php
$a1 = 1.5;
$a2 = 1.3e4; // 1.3 * 10^4
$a3 = 6E-8; // 0.00000006
?>

Тип bool (логический тип)

Переменные логического типа могут принимать два значения: true и false или иначе говоря истина и ложь. Чаще всего логические значения используются в условных конструкциях:

<?php
$foo = true;
$boo = false;
?>

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

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

<?php
$a= 10;
$b= 5;
$result = "$a + $b <br>";
echo $result;
$result = '$a + $b';
echo $result;
?>

В этом случае мы получим следующий вывод:
10+5
$a+$b
Кроме обычных символов, строка может содержать специальные символы, которые могут быть неправильно интерпретированы. Например, нам надо добавить в строку кавычку:

$text = "Модель "Apple II"";

Данная запись будет ошибочна. Чтобы исправить ошибку, мы можем сочетать различные типы кавычек ('Модель "Apple II"' или "Модель 'Apple III'") или использовать слеш, чтобы ввести кавычку в строку:

$text = "Модель \"Apple II\"";
$text = 'Модель "Apple II"';

Специальное значение null

Значение null указывает, переменная не имеет значения. Использование данного значения полезно в тех случаях, когда мы хотим указать, что переменная не имеет значения. Например, если мы просто определим переменную без ее инициализации, и затем попробуем ее использовать, то нам интерпретатор выдаст сообщение, что переменная не установлена:

<?php
$a;
echo $a;
?>

Использование значения null поможет избежать данной ситуации. Кроме того, мы сможем проверять наличие значения и в зависимости от результатов проверки производить те или иные действия:

<?php
$a = null;
echo "a = $a";
?>

Константа null не чувствительна к регистру, поэтому мы можем написать и так:

$a = NULL;

Динамическая типизация

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

<?php
$id = 123;
echo "<p>id = $id</p>";
$id = "jhveruuyeru";
echo "<p>id = $id</p>";
?>

array (массивы)

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

<?php
// Простой способ инициализации массива
$names[0]="Апельсин";
$names[1]="Банан";
$names[2]="Груша";
$names[3]="Помидор";
// Здесь: names - имя массива, а 0, 1, 2, 3 - индексы массива
?>

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

<?php
// Ассоциативный массив
$names["Иванов"]="Иван";
$names["Сидоров"]="Николай";
$names["Петров"]="Петр";
// В данном примере: фамилии - ключи ассоциативного массива
// , а имена - элементы массива
?>

Многомерные массивы
Для создания массивов в PHP существует специальная инструкция array(). Ее удобно использовать для создания многомерных массивов. Приведем конкретный пример:

<?php
// Многомерный массив
$A["Ivanov"] = array("name"=>"Иванов И.И.", "age"=>"25", "email"=>"ivanov@mail.ru");
$A["Petrov"] = array("name"=>"Петров П.П.", "age"=>"34", "email"=>"petrov@mail.ru");
$A["Sidorov"] = array("name"=>"Сидоров С.С.", "age"=>"47", "email"=>"sidorov@mail.ru");
?>

object (объекты)

Объект является одним из базовых понятий объектно-ориентированного программирования. Внутренняя структура объекта похожа на хэш, за исключением того, что для доступа к отдельным элементам и функциям используется оператор ->, а не квадратные скобки.
Для инициализации объекта используется выражение new, создающее в переменной экземпляр объекта.

<?php
class foo
{
     function do_foo()
     {
         echo "Doing foo."; 
     }
}

$bar = new foo;
$bar->do_foo();
?>

resource (ресурсы)

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

mixed (любой тип)

mixed говорит о том, что параметр может принимать множество (но не обязательно все) типов.
gettype(), например, принимает все типы PHP, тогда как str_replace() принимает строки и массивы.

тип number (числовой)

number говорит о том, что параметр может быть либо integer, либо float.

тип callback (обратного вызова)

Некоторые функции, такие как call_user_func() или usort() принимают в качестве параметра определенные пользователем callback-функции. Callback-функции могут быть не только простыми функциями, но также методами объектов, включая статические методы классов.
PHP-функция передается просто как строка ее имени. Вы можете передать любую встроенную или определенную пользователем функцию за исключением array(), echo(), empty(), eval(), exit(), isset(), list(), print() и unset().
Приведем примеры callback функций:

<?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'));
?>

Обсуждение закрыто.