php
  • database
  • variables
  • 2016-02-12 187 views 1 likes 
    1

    我有點困惑 - 如何獲取存儲到數據庫的變量名?? 在數據庫中記錄一個字符串:"$test"從數據庫中獲取變量名

    變量$ user在從數據庫中獲取記錄之前設置。所以我想將這個字符串「轉換」爲一個真正的變量來獲取它的值。

    下不工作:

    // $test is set to 'bla' 
    $test = 'bla'; 
    // $var is the value from the database 
    $var = '$test'; 
    // print $test 
    echo ${$var}; 
    

    我知道,如果我從數據庫中記錄

    $var = 'test'; 
    echo $$var; 
    

    但如何處理這種不刪除「$」它的工作?

    +0

    你可以刪除$ via字符串替換,但我質疑你爲什麼這樣做? – jardis

    +0

    沒有必要把'{}'放在一個變量中,你可以這樣做'echo $ var;' – Tom

    +0

    但是'echo $ var;'只給出字符串'「$ test」'。不是變量'$ test'的值。 – alve89

    回答

    1

    替換字符串中更好的選擇,如果你不想更換$您可以使用eval功能:

    $test = 'bla'; 
    $var = '$test'; 
    
    eval("\$var = \"$var\";"); 
    
    echo $var; //output: bla 
    
    +0

    就是這樣。我用'eval()'試了一下,但有點不同 - 沒有成功。謝謝! – alve89

    0

    我只是現在面臨着類似的問題。 這是我做的: $ res [0]是從mysql_fetch_array()獲得的,它包含另一個含有$ variable嵌入的查詢。

    $qry="select query from sql_list where id=".$sql_id; 
    $result=mysql_query($qry); 
    $res=mysql_fetch_array($result); 
    eval("\$qry_2 = \"$res[0]\";"); 
    mysql_query($qry_2) 
    

    它的工作原理!也許有人可以提出更好的方法。

    相關問題