Всем привет.
Получил такую ошибку на сайте
Fatal error: Call-time pass-by-reference has been removed in /home/w/wmidus2o/statusms.com/public_html/gb/index.php on line 772
сама строка
$message[$_GET['id']] = implode('|', &$m) . "\r\n";
что не так. Если просто удалить строку то ошибки нет
чет я в этой строке запутался нахрен
<?
$message[$_GET['id']] = implode('|', &$m) . "rn";
?>
даже хз что она делает хотя начало понятно
<?
$message[$_GET['id']];
?>
а дальше чет не понятно
Пример 1. Пример использования implode()
[code] <?php
$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);
echo $comma_separated; // lastname,email,phone
?> [/code]
Замечание: По историческим причинам, функции implode() можно передавать аргументы в любом порядке, однако для унификации с функцией explode() следует использовать документированный порядок аргументов.
Замечание: Начиная с версии 4.3.0 аргумент glue функции implode() является необязательным и по умолчанию равен пустой строке (''). Для обеспечении обратной совместимости рекомендуется всегда передавать оба аргумента.
Замечание: Эта функция безопасна для обработки данных в двоичной форме.
Источник: php.su
// Записываем сообщение в файл
[code] $m[0] = ( in_array($_POST['name'], $admin_name) ? 'admin' : 'user' );
$m[1] = &$_POST['name'];
$m[4] = &$_POST['email'];
$m[5] = &$_POST['icq'];
$m[9] = &$_POST['text'];
$message[$_GET['id']] = implode('|', &$m) . "\r\n";
puts('data/message.dat', implode($message), 'w');
header('Location: ./' . ( SID ? '?' . SID : '' ));
exit; [/code]
Вот как полностью код там выглядит. Точнее кусок
ReDo, не имею представления. Но удалив её ошибка пропадает
Передача переменной в функцию по ссылке устарела. В &$m удали &
Это присваивание по ссылке. Вы используйте версию php > 5.3, поэтому и появляется ошибка.
Решение: убирайте &, либо используйте php < 5.3