2.3. Переменные
Несмотря на то что темы переменных мы уже касались в предыдущих главах, до сих пор нет полной ясности, что они из себя представляют. Переменные в PHP позволяют хранить данные в той части компьютера, которая обычно называется ОЗУ. Но ОЗУ является непостоянным местом хранения информации, т.е. вся хранимая информация исчезнет в тот момент, когда будет выключен компьютер. Компьютер рассматривает свою память как большой массив ячеек памяти, имеющих последовательные адреса. Однако в PHP работать с памятью на этом уровне нельзя, поэтому необходимо пользоваться переменными. При присвоении значения определенной переменной с помощью оператора $result = 2 + 5 или при выборке значения переменной с помощью оператора print($result) PHP берет на себя заботы о том, чтобы связать заданную программистом переменную с определенным местом в ОЗУ.
Любая переменная в PHP начинается с символа доллара ($) и последующих букв, цифр или символов подчеркивания. Следующий за символом $ символ должен быть цифрой или символом подчеркивания. В табл. 2.3 представлены примеры правильного и неправильного задания имени переменной.
Применение символа доллара в именах переменных является довольно старой традицией в языках программирования. Это справедливо и для популярного языка Basic, созданного в 1960-х годах, и для такого более нового языка, как Perl. А такие языки, например, как C и Java, этого не придерживаются. Символ доллара позволяет отличить переменную от функции, ключевого слова или других элементов синтаксиса PHP. Можно также сделать символ $ частью имени переменной или рассматривать его как оператор, который ссылается на память с заданным именем. Конечно же, говоря о переменных, проще думать в терминах "user equals three", чем "dollar-sign-user equals three". В обычном языке, в котором отсутствуют такие нюансы, проще видеть символ $ , но это не обязательно. В обоих случаях вы будете поняты, а все остальное - это дело личных предпочтений.
Переменные, операторы и выражения
Знак равенства (=) используется для присвоения переменной определенного значения и называется оператором присвоения. В левой части оператора указывается переменная, которая принимает значение. В правой части задается выражение, которое может быть простой строковой константой или сложной комбинацией операторов, переменных и констант. Простейшая форма присвоения является константным выражением, это может быть число или взятая в кавычки строка. В табл. 2.4 приведены примеры таких констант.
Переменные, операторы и выражения
Переменные PHP никогда не обозначают типы - тип переменной определяется типом значения, которое он хранит. Тип значения, которое хранят переменные, может изменяться в любой момент времени. Например, присвоение целого числа переменной, которая до этого хранила строку, превращает тип этой переменной в целый тип. Это явно контрастирует с языком C, где каждая переменная всегда имеет предопределенный вид. Присвоение значения другого типа в языке C приводит к тому, что он сделает попытку преобразовать тип значения, чтобы он соответствовал типу переменной.
Переменную можно использовать в любом контексте, допустимом для этого выражения. Переменные можно использовать при конструировании сложных выражений и присваивать их результаты другим переменным. В листинге 2.3 одна переменная, присутствующая в выражении, используется для присвоения значения следующей переменной.

I Листинг 2.3. Использование переменных при вычислениях
<?php
//создать переменную
$result = 2 + 5;
//создать другую переменную
$doubleResult = $result * 2.001;
//распечатать вторую переменную
print($doubleResult);
?>
Как было сказано ранее, строки, взятые в двойные кавычки, и документы HERE могут содержать вложенные переменные. Переменную можно указать внутри строки, заключенной в кавычки, и на ее месте появится ее текущее значение. Этот прием работает даже с массивами и объектами. Листинг 2.4 является примером такого приема. Заметим, что в операторе print переменная name заключена в двойные кавычки.
Листинг 2.4. Встроенные переменные
<?php
$name = "Zeev";
//Поприветствуем Зеева
print("Привет, $name!n");
// Поприветствуем Зеева еще раз
print <<< EOD Опять привет, $name! Как дела? EOD;
?>