Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Для чего использует знак & ?
 
 автор: Shorr Kan   (27.10.2005 в 04:19)   письмо автору
 
 

Пример:

$var=&send_page( $params );

   
 
 автор: irr   (27.10.2005 в 06:11)   письмо автору
 
   для: Shorr Kan   (27.10.2005 в 04:19)
 

Возвращение по ссылке (из документации по PHP)

Возвращение по ссылке используется в тех случаях, когда вы хотите использовать функцию для выбора переменной, с которой должна быть связана данная ссылка. При возвращении по ссылке используйте такой синтаксис:

<?php
function &find_var($param)
{
    
/* ... код ... */
    
return $found_var;
}

$foo =& find_var($bar);
$foo->2;
?>

В этом примере устанавливается свойство объекта, возвращённого функцией find_var, а не его копии, как было бы без использования ссылок.
Замечание: В отличие от передачи параметров по ссылке, & здесь нужно использовать в обоих местах - для указания на то, что вы возвращаете ссылку, а не копию, как обычно, и для указания того, что происходит связывание по ссылке, а не обычное присвоение.

   
 
 автор: Shorr Kan   (27.10.2005 в 09:28)   письмо автору
 
   для: irr   (27.10.2005 в 06:11)
 

Я долго пытался понять. Видимо, недостаточно долго, так как не понял. А если упрощенно, на пальцах?..

   
 
 автор: irr   (27.10.2005 в 11:12)   письмо автору
 
   для: Shorr Kan   (27.10.2005 в 09:28)
 

упрощенно не смогу объяснить, т.к. я связывал только переменные, а у Вас тут функция.
если связывать переменные, то если: $a = &$b, это означает что значение переменной $b не копируется в $a! просто $a становится псевдонимом $b. и если в дальнейшем изменится значение $b, то вместе с ним изменится значение $a.

<?php
$b 
'Hello World!';
$a = &$b;
$b 'Good bye, World!';
echo 
$a// должно вывести Good bye, World!, а не Hello World!
?>

   
 
 автор: cheops   (27.10.2005 в 13:48)   письмо автору
 
   для: Shorr Kan   (27.10.2005 в 09:28)
 

Обычно при передачи используется копия объекта
<?php
  
function change($num)
  {
    
$num 45;
  }
  
$num 3;
  
change($num);
  echo 
$num// Выведит 3, так как функции пошла копия
?>

& - позволяет передать объект по ссылке, т.е. не копию, а сам объект
<?php
  
function change(& $num)
  {
    
$num 45;
  }
  
$num 3;
  
change($num);
  echo 
$num// Выведит 45, так как вместо копии пошёл сам объект
?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования