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