严格标准:只有变量应该通过引用PHP 5.4来分配


Strict Standards: Only variables should be assigned by reference PHP 5.4

我将PHP版本升级到5.4(XAMPP 1.7.3到1.8.0)。现在我看到myDBconnection:的严格标准错误

严格标准:在第4行上的C:''examplep''htdocs''alous''include''dbconn.php中,只有变量应该通过引用分配

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'");
?>

注意:我不需要用这个方法error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT禁用php.ini中的严格标准!我想修复我的PHP代码。

您应该删除&(与号)符号,这样第4行看起来像这样:

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

这是因为ADONewConnection已经通过引用返回了一个对象。根据文档,从PHP 5.3.0

开始,通过引用将引用结果分配给对象会导致E_DEPRECATED消息

这是因为您试图通过引用来分配对象。删除"与"符号,脚本就可以正常工作了。