php - 严格标准 : Only variables should be assigned by reference PHP 5. 4

标签 php reference porting

我将我的 PHP 版本升级到 5.4(XAMPP 1.7.3 到 1.8.0)。现在我看到 Strict Standards 错误,对于 myDBconnection:

Strict Standards: Only variables should be assigned by reference in C:\xampp\htdocs\alous\include\dbconn.php on line 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 代码。

最佳答案

您应该删除 &(与号)符号,这样第 4 行将如下所示:

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

这是因为 ADONewConnection 已经通过引用返回了一个对象。根据 documentation ,从 PHP 5.3.0 开始,通过引用将引用的结果分配给对象会导致 E_DEPRECATED 消息

关于php - 严格标准 : Only variables should be assigned by reference PHP 5. 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11777908/

相关文章:

javascript - 编辑表中的行时添加验证

C# 垃圾收集器、线程和编译器/抖动优化

c - 通过引用传递变量的错误

c# - Reflection.Emit 的 Java 等价物

python - 通过 ctypes 将 C 库移植到 Python

c++ - 找出一组整数的多项式

javascript - 用返回函数替换PHP中的字符串

php - PIN 码认证

PHP - 查找两个时间之间的差异

c++ - 我应该返回对堆对象的引用还是返回值?