首页 > 解决方案 > PHP 7.4 更改引用变量的处理方式?

问题描述

从 MySQL 查询的结果来看,我一直在使用 PHP 5.5 的几个参考变量:


    $sql="SELECT `name`, `value` FROM `maindatabase`.`systemProtect` WHERE `name`='IV' || `name`='passPhrase'";
    $result=mysqli_query($serverConn, $sql);
    while ($row=mysqli_fetch_array($result, MYSQLI_ASSOC)){
        $$row['name']=$row['value'];    
    }

虽然我确信这可能不是最好的做事方式,但它可以很好地满足我的需求。

我升级到 PHP 7.4 并收到一个错误:注意:数组到字符串的转换

通过大量的试验和错误,我通过使用一些额外的 {} 解决了这个问题 现在代码是

$sql="SELECT `name`, `value` FROM `maindatabase`.`systemProtect` WHERE `name`='IV' || `name`='passPhrase'";
$result=mysqli_query($serverConn, $sql);
while ($row=mysqli_fetch_array($result, MYSQLI_ASSOC)){
    ${$row['name']}=$row['value'];  
}

现在一切都恢复正常了,但我真的很想了解原因 - 在这种情况下,{} 在做什么?我假设这是因为变量是数组的一部分……但这以前不是必需的。

感谢您的任何见解。

标签: php

解决方案


推荐阅读