Переменные

Содержание

Основы

Переменные в PHP представлены знаком доллара с последующим именем переменной. Имя переменной чувствительно к регистру.

Имена переменных соответствуют тем же правилам, что и остальные наименования в PHP. Правильное имя переменной должно начинаться с буквы или символа подчеркивания с последующими в любом количестве буквами, цифрами или символами подчеркивания Это можно отобразить регулярным выражением: '[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'

Замечание: Для наших целей буквы здесь - это 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();    // Неверно.
?>

Коментарии

As with echo, you can define a variable like this:

<?php

$text 
= <<<END

<table>
    <tr>
        <td>
             $outputdata
        </td>
     </tr>
</table>

END;

?>

The closing END; must be on a line by itself (no whitespace).

[EDIT by danbrown AT php DOT net: This note illustrates HEREDOC syntax.  For more information on this and similar features, please read the "Strings" section of the manual here: language.types.string ]
2005-05-17 16:06:22
http://php5.kiev.ua/manual/ru/language.variables.html
References and "return" can be flakey:

<?php
//  This only returns a copy, despite the dereferencing in the function definition
function &GetLogin ()
{
    return 
$_SESSION['Login'];
}

//  This gives a syntax error
function &GetLogin ()
{
    return &
$_SESSION['Login'];
}

//  This works
function &GetLogin ()
{
   
$ret = &$_SESSION['Login'];
    return 
$ret;
}
?>
2005-11-25 16:03:14
http://php5.kiev.ua/manual/ru/language.variables.html

    Поддержать сайт на родительском проекте КГБ