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

Форум PHP

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

 

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

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

тема: >>Знак "&" в функциях даёт ошибку<<
 
 автор: himic   (28.04.2006 в 14:04)   письмо автору
 
 

Вот такая ошибка при использовании знака & --- user_reg(&$mess);
убираю знак и всё в поряде

Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of [runtime function name](). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in C:\WebServers\Apache2\htdocs\index.php on line 20

   
 
 автор: NickCo   (28.04.2006 в 14:09)   письмо автору
 
   для: himic   (28.04.2006 в 14:04)
 

А для чего перед переменной & ???

   
 
 автор: Саня   (28.04.2006 в 14:27)   письмо автору
 
   для: NickCo   (28.04.2006 в 14:09)
 

> А для чего перед переменной & ???
Для передачи значения переменной по ссылке. То есть, при изменении значения переменной внутри функции приводит к изменению значения переменной вне функции.

А вообще нужно определять функции как обычно, а при вызове функции передавать значение по ссылке:
<?php
function sum($var) { $var += 12; }
$a 10;
sum(&$a);
print 
$a// выведет 22
?>

   
 
 автор: Trianon   (28.04.2006 в 15:29)   письмо автору
 
   для: himic   (28.04.2006 в 14:04)
 

Амперсенд надо ставить перед переменной, но не при вызове функции, а при её объявлении - в заголовке:
function user_reg(&$mess)
{
....
}

а из вызова - убрать:
user_reg($mess);

Либо, как было указано, отключить диагностику, разрешив в в PHP.INI вызов по ссылке:
allow_call_time_pass_reference = On

   
 
 автор: himic   (02.05.2006 в 08:13)   письмо автору
 
   для: Trianon   (28.04.2006 в 15:29)
 

Сильное Спасибо!

   
Rambler's Top100
вверх

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