Константа — это величина, которая при выполнении программы остаётся неизменной.
Константа объявляется одновременно с именем и значением. Для объявления константы служит функция define(), а для определения наличия константы (т.е. была она определена или нет) - функция defined(). Имя константы строится по тем же правилам, что и имена переменных.
Переменная — это ячейка памяти для временного хранения данных. Предполагается, что в процессе выполнения программы значения переменных могут изменяться.
В PHP имя переменной всегда начинается со знака доллара ($), за которым обязательно должна следовать буква, после которой можно использовать буквы, цифры и знак подчёркивания. Имена чувствительны к регистру символов, т.е. переменные $value, $Value, $VALUE и $VaLuE - четыре РАЗНЫХ переменных, хотя их имя и читается одинаково.
Инициализация — это присвоение начального значения переменной. Присвоить какое-либо значение переменной можно с помощью оператора присваивания, который обозначается символом равно (=)
Переменные в PHP не имеют типа, поэтому переменной может быть присвоено сначала значение одного типа, а затем этой же переменной может быть присвоено значение другого типа
Неинициализированная переменная, то есть такая, которой не было присвоено никакого значения, принимает значение по умолчанию в зависимости от контекста её использования:
При работе со строками — пустую строку.
При работе с числами — число нуль.
Там, где ожидается булево значение — FALSE.
При работе с переменной в качестве массива — пустой массив.
При работе с переменной в качестве объекта — объект типа stdClass.
Без контекста использования — специальное значение NULL.
Существует несколько правил преобразования.Первое правило, если строка начинается с допустимого числового значения, то данная строка при выполнении над ней числовой операции будет преобразована в целое число, Если же строка не начинается с числа, то она будет преобразована в 0.
< ?php
$str = "23SomeText";
$res = 5 + $str;
echo $res; //выведет 28
echo $str;
//выведет 23SomeText,
//т.к. значение самой переменной не изменится
//при выполнении данной операции
?>
Второе правило, строка переводится в число с плавающей точкой только в том случае, если число занимает всю строку. Если же в строке будут встречены какие-то буквенные символы, то строка преобразуется в целое число.
< ?php
$str = "2.3";
$res = 5 + $str;
echo $res; //выведет 5.8
?>
Кроме того существует способ явного преобразования типов:
< ?php
$a = 99.2;
$a = (int)$a; //=99
$b = (double)$a; //=99.0
$c = (string)$a; //="99"
?>