Переменные в PHP представлены знаком доллара с последующим именем переменной. Имя переменной чувствительно к регистру.
Имена переменных соответствуют тем же правилам, что и остальные наименования в PHP. Правильное имя переменной должно начинаться с буквы или символа подчеркивания с последующими в любом количестве буквами, цифрами или символами подчеркивания Это можно отобразить регулярным выражением: '[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'
Note: Для наших целей буквы здесь - это a-z, A-Z, и ASCII-символы со 127 по 255 (0x7f-0xff).
<?php
$var = "Bob";
$Var = "Joe";
echo "$var, $Var"; // выведет "Bob, Joe"
$4site = 'not yet'; // неверно; начинается с цифры
$_4site = 'not yet'; // верно; начинается с символа подчеркивания
$tдyte = 'mansikka'; // верно; 'д' это (Дополнительный) ASCII 228.
?>
В PHP 3 переменные всегда присваивались по значению. То есть, когда вы присваиваете выражение переменной, все значение оригинального выражения копируется в эту переменную. Это означает, к примеру, что после присвоения одной переменной значения другой, изменение одной из них не влияет на значение другой. Дополнительную информацию об этом способе присвоения смотрите в разделе Выражения.
PHP 4 предлагает иной способ присвоения значений переменным: присвоение по ссылке. Это означает, что новая переменная просто ссылается (иначе говоря, "становится псевдонимом" или "указывает") на оригинальную переменную. Изменения в одной переменной отражаются на оригинале, и наоборот. Это также означает, что копирования не происходит; таким образом, присвоение осуществляется быстрее. Однако, любое увеличение скорости будет хорошо заметно только в сжатых циклах или при присвоении больших массивов или объектов.
Для присвоения по ссылке, просто добавьте амперсанд (&) к началу имени присваиваемой (исходной) переменной. Например, следующий фрагмент кода дважды выводит 'My name is Bob':
<?php
$foo = 'Bob'; // Присваивает $foo значение 'Bob'
$bar = &$foo; // Ссылка на $foo через $bar.
$bar = "My name is $bar"; // Изменение $bar...
echo $bar;
echo $foo; // меняет и $foo.
?>
Важно отметить, что по ссылке могут быть присвоены только именованные переменные.
<?php
$foo = 25;
$bar = &$foo; // Это верное присвоение.
$bar = &(24 * 7); // Неверно; ссылка на неименованное выражение.
function test()
{
return 25;
}
$bar = &test(); // Неверно.
?>