mirror of
https://github.com/php/doc-ru.git
synced 2025-08-16 18:22:04 +00:00
references: fixes
git-svn-id: https://svn.php.net/repository/phpdoc/ru/trunk@345518 c90b9560-bf6c-de11-be94-00142212c4b1
This commit is contained in:
@ -17,7 +17,7 @@
|
||||
поэтому одно содержимое может иметь разные имена. Можно сделать аналогию с
|
||||
именами файлов Unix и их именами: имена переменных - записи в
|
||||
каталоге, а содержимое переменной - это сам файл. Ссылки в PHP - аналог
|
||||
жёстких ссылок (hardlinks) в файловых системах Unix.
|
||||
жёстких ссылок в файловых системах Unix.
|
||||
</simpara>
|
||||
</sect1>
|
||||
|
||||
@ -99,7 +99,7 @@ $foo =& find_var($bar);
|
||||
<literal>=&</literal> в этом случае не рекомендуется и вызывает
|
||||
сообщение <constant>E_DEPRECATED</constant> в PHP 5.3 и последующих версиях,
|
||||
а также сообщение <constant>E_STRICT</constant> в более ранних версиях.
|
||||
Начиная с PHP 7.0 это синтаксически некорректно.
|
||||
Начиная с PHP 7.0, это синтаксически некорректно.
|
||||
(Технически разница в том, что в PHP 5 переменные объекта, подобно ресурсам,
|
||||
являются просто указателем на фактические данные объекта, поэтому ссылки на объекты
|
||||
не те же самые "ссылки", о которых говорилось ранее (псевдонимы).
|
||||
@ -200,8 +200,8 @@ $c = 7; //$c не ссылка и не изменяет значений $a и $
|
||||
|
||||
/* Присвоение массивов */
|
||||
$arr = array(1);
|
||||
$a =& $arr[0]; //$a и $arr[0] ссылаются на одно значение
|
||||
$arr2 = $arr; //присвоение не по ссылке!
|
||||
$a =& $arr[0]; // $a и $arr[0] ссылаются на одно значение
|
||||
$arr2 = $arr; // присвоение не по ссылке!
|
||||
$arr2[0]++;
|
||||
/* $a == 2, $arr == array(2) */
|
||||
/* Содержимое $arr изменилось, хотя было присвоено не по ссылке! */
|
||||
@ -223,12 +223,11 @@ $arr2[0]++;
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
function foo(&$var)
|
||||
{
|
||||
function foo(&$var) {
|
||||
$var++;
|
||||
}
|
||||
|
||||
$a=5;
|
||||
$a = 5;
|
||||
foo($a);
|
||||
?>
|
||||
]]>
|
||||
@ -259,8 +258,7 @@ foo($a);
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
function foo(&$var)
|
||||
{
|
||||
function foo(&$var) {
|
||||
$var =& $GLOBALS["baz"];
|
||||
}
|
||||
foo($bar);
|
||||
@ -278,7 +276,7 @@ foo($bar);
|
||||
доступна в функции <varname>foo</varname> (доступно лишь её значение через
|
||||
<varname>$var</varname>, но <varname>$var</varname> имеет только значение
|
||||
переменной и не имеет связи имя-значение в таблице имен переменных).
|
||||
Вы можете воспользоваться <link linkend="language.references.return">возвращением
|
||||
Вы можете воспользоваться <link linkend="language.references.return">возвратом
|
||||
ссылок</link> из функции для привязки внешней перменной к другому значению.
|
||||
</simpara>
|
||||
</sect1>
|
||||
@ -292,12 +290,11 @@ foo($bar);
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
function foo(&$var)
|
||||
{
|
||||
function foo(&$var) {
|
||||
$var++;
|
||||
}
|
||||
|
||||
$a=5;
|
||||
$a = 5;
|
||||
foo($a);
|
||||
// $a здесь равно 6
|
||||
?>
|
||||
@ -331,12 +328,10 @@ foo($a);
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
function foo(&$var)
|
||||
{
|
||||
function foo(&$var) {
|
||||
$var++;
|
||||
}
|
||||
function &bar()
|
||||
{
|
||||
function &bar() {
|
||||
$a = 5;
|
||||
return $a;
|
||||
}
|
||||
@ -346,7 +341,7 @@ foo(bar());
|
||||
</programlisting>
|
||||
</informalexample>
|
||||
См. также объяснение <link
|
||||
linkend="language.references.return">возвращения по ссылке</link>.
|
||||
linkend="language.references.return">возрата по ссылке</link>.
|
||||
</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
@ -358,12 +353,10 @@ foo(bar());
|
||||
<programlisting role="php">
|
||||
<![CDATA[
|
||||
<?php
|
||||
function foo(&$var)
|
||||
{
|
||||
function foo(&$var) {
|
||||
$var++;
|
||||
}
|
||||
function bar() // Операция & отсутствует
|
||||
{
|
||||
function bar() { // Операция & отсутствует
|
||||
$a = 5;
|
||||
return $a;
|
||||
}
|
||||
@ -387,9 +380,9 @@ foo(new Foobar()) // Вызывает уведомление с PHP 7.0.7
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="language.references.return">
|
||||
<title>Возрат по ссылке</title>
|
||||
<title>Возврат по ссылке</title>
|
||||
<para>
|
||||
Возрат по ссылке используется в тех случаях, когда вы хотите
|
||||
Возврат по ссылке используется в тех случаях, когда вы хотите
|
||||
использовать функцию для выбора переменной, с которой должна быть связана
|
||||
данная ссылка. <emphasis>Не</emphasis> используйте возврат по ссылке
|
||||
для увеличения производительности. Ядро PHP само занимается оптимизацией.
|
||||
@ -430,7 +423,7 @@ echo $myValue; // отобразит новое значение
|
||||
</note>
|
||||
<note>
|
||||
<simpara>
|
||||
Если вы возвращаете ссылку из функции используя следующий синтаксис:
|
||||
Если вы возвращаете ссылку из функции, используя следующий синтаксис:
|
||||
<literal>return ($this->value);</literal>, это <emphasis>не</emphasis>
|
||||
будет работать, так как вы возвращаете по ссылке результат
|
||||
<emphasis>выражения</emphasis>, а не переменную. По ссылке можно
|
||||
|
Reference in New Issue
Block a user