Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Передача параметров в функцию по ссылке
Форумы портала PHP.SU » PHP » Программирование на PHP » Передача параметров в функцию по ссылке

Страниц (1): [1]
 

1. evgenijj - 18 Февраля, 2007 - 10:53:56 - перейти к сообщению
Я решил сменить хостера. Достал меня Valuehost.ru. А у нового хостера столкнулся с такой странностью(?). При попытке передать в функцию параметр по ссылке PHP пишет
Цитата:

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 /home/.../public_html/mod/shop/s hop.php on line 50

Если я правильно перевел, передача параметров по ссылке во время выполнения скрипта не рекомендуется, и в будущем планируется вообще от этого отказаться.
Правильно:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $html = get_product( $id_page, $id_prd, $title_page );
  4. ............................................................................
  5. function get_product( $id_page, $id_prd, &$title_page )
  6. {
  7.     ........................................................................
  8.     return $html;
  9. }
  10. ?>
  11.  

Неправильно:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $html = get_product( $id_page, $id_prd, &$title_page );
  4. ............................................................................
  5. function get_product( $id_page, $id_prd, $title_page )
  6. {
  7.     ........................................................................
  8.     return $html;
  9. }
  10. ?>
  11.  

Можно запретить выдачу предупреждения, разрешив передачу по ссылке во время выполнения:
allow_call_time_pass_reference On
Хотелось бы услышать комментарии по этому поводу: это принципиальная ошибка (и мне придется исправить какое-то количество скриптов) или можно и так оставить? Я так понимаю, единого мнения по этому вопросу нет. У старого хостера
allow_call_time_pass_reference On
а у нового
allow_call_time_pass_reference Off

 

Powered by ExBB FM 1.0 RC1