Строгие стандарты: только переменные должны назначаться по ссылке PHP 5.4

Я обновляю версию MyPHP до версии 5.4 (Xampp 1.7.3 до 1.8.0). Теперь я вижу Строгие Стандарты ошибка, для myDBconnection:

Строгие стандарты: только переменные должны назначаться по ссылке в C: \ xampp \ htdocs \ alous \ include \ dbconn.php в строке 4

dbconn.php:

<?php
defined('_VALID') or die('Restricted Access!');

$conn = &ADONewConnection($config['db_type']); // <--- This Line 4

if ( !$conn->Connect($config['db_host'], $config['db_user'], $config['db_pass'], $config['db_name']) ) {
echo 'Could not connect to mysql! Please check your database settings!';
die();
}
$conn->execute("SET NAMES 'utf8'");
?>

Замечания: Мне не нужно отключать строгие стандарты в php.ini с помощью этого метода error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT! Я хочу исправить свой код PHP.

40

Решение

Вы должны удалить & (амперсанд), так что строка 4 будет выглядеть так:

$conn = ADONewConnection($config['db_type']);

От Руководство php по присвоению по ссылке:

Начиная с PHP 5, оператор new возвращает ссылку автоматически, поэтому
присваивание результата новых по ссылочным результатам в E_DEPRECATED
сообщение в PHP 5.3 и позже, и сообщение E_STRICT ранее
версии.

73

Другие решения

Это потому, что вы пытаетесь назначить объект по ссылке. Удалите амперсанд, и ваш скрипт должен работать как задумано.

9

У меня тоже была эта проблема.

Я не видел никаких изменений после изменения:

error_reporting = E_ALL

display_errors = Off

Закрыл мой браузер, остановился и запустил Apache в Xamp en. Сообщения об ошибках исчезли.

-16
По вопросам рекламы [email protected]