web-dev-qa-db-fra.com

Normes strictes: Seules les variables doivent être attribuées par référence PHP 5.4

Je mets à jour MyPHP version 5.4 (Xampp 1.7.3 à 1.8.0). Maintenant, je vois une erreur Strict Standards, pour myDBconnection:

Normes strictes: Seules les variables doivent être attribuées par référence dans C:\xampp\htdocs\alous\include\dbconn.php à la ligne 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'");
?>

Note: Je n'ai pas besoin de désactiver Strict Standards dans php.ini avec cette méthode error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT! Je veux réparer mon code PHP.

42
BBKing

Vous devriez enlever le & symbole (esperluette), de sorte que la ligne 4 se présente comme suit:

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

De manuel de PHP sur l'assignation par référence :

À partir de PHP 5, l'opérateur new retourne une référence automatiquement. Par conséquent, si vous assignez le résultat de new by reference à un message E_DEPRECATED dans PHP 5.3 et versions ultérieures, et un message E_STRICT dans les versions antérieures.

74
Ozair Kafray

C'est parce que vous essayez d'attribuer un objet par référence. Supprimez l'esperluette et votre script devrait fonctionner comme prévu.

10
VettelS