Переменные в РНР версии 5 (в отличие от версии 4) хранят не сами объекты, а лишь ссылки на них. Это означает, что при копировании таких переменных (например, оператором $а = $obj) данные объекта в памяти не дублируются, и последующее изменение объекта $а повлечет за собой немедленное изменение объекта $obj.
resource – Некоторый ресурс, который РНР обрабатывает особым образом. Пример ресурса — переменная, содержащая дескриптор открытого файла.
Существует и еще один тип переменных — логический. Логическая переменная может содержать одно из двух значений: false (ложь) или true (истина). Вообще, любое ненулевое число (и непустая строка), а также ключевое слово true символизирует истину, тогда как 0, пустая строка и слово false — ложь. Таким образом, любое ненулевое выражение (в частности, значение переменной) рассматривается в логическом контексте как истина.
NULL (специальное значение) - Переменной можно присвоить специальную константу null (или null, это одно и то же), чтобы пометить ее особым образом. Тип этой константы — особый и называется также null.
Вне зависимости от типа переменной, над ней можно выполнять три основных действия.
1) Присвоение значения некоторой переменной значение другой переменной или ссылку на другую переменную, либо же константное выражение. При присваивании старое содержимое и тип переменной теряются, и она становится абсолютно точной копией своего "родителя".
2) Проверка существования при помощи встроенного в РНР оператора isset().
Например:
if (isset($myVar))
echo "Такая переменная есть. Ее значение $myVar";
Если переменной в данный момент не существует, то isset() возвращает ложь, в противном случае — истину.
3) Уничтожение переменной реализуется оператором unset(). После этого действия переменная удаляется из внутренних таблиц интерпретатора, т. е. программа начинает выполняться так, как будто переменная еще не была инициализирована. Например:
// Переменная $а еще не существует
$а = "Hello there!";
// Теперь $а инициализирована
echo $a;
//А теперь удалим переменную $а
unset($a);
// Теперь переменная $а опять не существует
echo $a; // Ошибка: нет такой переменной $а
Обычно unset() не применяется для работы с обычными переменными, а используется для удаления элемента в ассоциативном массиве.
Существуют еще несколько стандартных функций, которые занимаются определением типа переменных и часто включаются в условные операторы.
is_integer($а) //Возвращает true, если $а — целое число.
is_double($a) //Возвращает true, если $а — действительное число.
is_string($a) //Возвращает true, если $а является строкой.
is_numeric($a) //Возвращает true, если $а является либо числом, либо строковым представлением числа (т. е. состоит из цифр и точки).
is_bool($a) //Возвращает true, если $а имеет значение true или false.
is_null($a) //Возвращает true, если $а хранит значение null.
is_array($a) //Возвращает true, если $а является массивом.
is_object($а) //Возвращает true, если $а содержит ссылку на объект.
gettype($a) //Возвращает строки, соответственно, со значениями: array, object, integer, double, string, boolean, NULL И Т. Д. ИЛИ unknown type в зависимости от типа переменной. Установка типа переменной
Существует функция, которая пытается привести тип указанной переменной к одному из стандартных (например, вам может понадобиться перевести строку в целое число).
settype($a, $type) //Функция пытается привести тип переменной $а к типу $type. Если это сделать не удалось, возвращает false.