Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 0 Ответов
  • 52512 Просмотров
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Начиная с версии PHP 5.0.5, а также 5.1, разработчики PHP усилили требования к коду. В частности, это касается работы функций, принимающих в качестве аргументов - ссылки на переменные, массивы и т.п.

Приведенный ниже код, нормально работающий на PHP 4.4, начиная с версии PHP 5.0.5 выдает сообщение об ошибке вида: Fatal error: Only variables can be passed by reference in....


function Foo(&$data) {
  
// do some code with $data
}
  
function 
Bar() {
  return 
"Hello world";
}

echo 
Foo(Bar());


Теперь при вызове функции Foo(), требующей передачи ей ссылки на переменную (для непосредственной ее модификации в функции) с аргументом, являющимся другой функцией, PHP 5.0.5 отказывается выполнять этот код и выдает соответствующее сообщение об ошибке.

Для решения данной проблемы необходимо немного видоизменить код, вводя временную переменную. Правильный (и к тому же работающий на PHP 5.0.5, а также 5.1) вызов функции выглядит так:


function Foo(&$data) {
  
// do some code with $data
}
  
function 
Bar() {
  return 
"Hello world";
}

$tmp_var Bar();
echo 
Foo($tmp_var);
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Что означает ошибка Failed opening required 'includes/joomla.php'?

Автор smart

Ответов: 0
Просмотров: 113160
Последний ответ 03.07.2008, 12:04:06
от smart
Что означает ошибка Failed opening required '/includes/version.php'?

Автор smart

Ответов: 0
Просмотров: 79127
Последний ответ 17.06.2008, 22:55:39
от smart
Ошибка MySQL: "Got error 134 from storage engine..."

Автор smart

Ответов: 0
Просмотров: 35458
Последний ответ 11.07.2007, 13:22:22
от smart
Что означает ошибка "Not unique table/alias..."

Автор smart

Ответов: 0
Просмотров: 31688
Последний ответ 30.05.2007, 17:03:48
от smart
Как избавиться от ошибки: Call-time pass-by-reference has been deprecated

Автор smart

Ответов: 0
Просмотров: 69405
Последний ответ 07.05.2007, 17:56:25
от smart