This question already has answers here:
Reference — What does this symbol mean in PHP?
                                
                                    (18个回答)
                                
                        
                        
                            What does $$ (dollar dollar or double dollar) mean in PHP?
                                
                                    (7个答案)
                                
                        
                                2年前关闭。
            
                    
我正在使用旧代码进行访问本地数据库的登录过程。这是我想在线发布的第一个Web项目。我开始使用的代码已弃用了功能,因此我一直在尝试使所有功能正常运行并加深对语言/过程的理解。

原始开发人员使用了变量$ link,两行之后,他们声明了全局$$ link。 (编辑:自从我第一次发布以来,我了解了一个变量变量,但是我仍然完全理解此用例。它可以用于什么用途)

tep_db_connect() or die('Unable to connect to database server!');
function tep_db_connect($server = DB_SERVER, $username = DB_SERVER_USERNAME, $password = DB_SERVER_PASSWORD, $database = DB_DATABASE, $link = 'db_link')
{
  global $$link;

  $$link = new mysqli($server, $username, $password);

  if (!$$link) {
  die("Connection Failed: " . $mysqli_connect_error());
  }

 mysqli_select_db($$link, $database);
 return $$link;

}


这是我的第一个Web项目。我习惯于使用调试器来解决问题。

最佳答案

我相信这可以视为“元”编程,但是正如已经提到的,这是一个变量变量。一个示例来说明可能是:

$a = '1';
$b = 'a';
echo $$b; // result: 1, can effectively be read as ${$b} -> ${a} -> $a
echo ${$b}; // same as above but a bit more obvious

10-02 17:24