Подтвердить что ты не робот

Строгие стандарты: только переменные должны назначаться по ссылке 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-код.

4b9b3361

Ответ 1

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

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

Из руководство по php по присваиванию по ссылке:

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

Ответ 2

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

Ответ 3

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

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

error_reporting = E_ALL

display_errors = Off

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