2012-10-01 287 views
1

我想在循环之外访问循环变量变量。一切正常,但我有这段代码的麻烦:使变量变量可以在循环之外访问

$dayVar."_count" = $dayVarCount; 

完整的代码如下:

<?php 

$day_1="sep_28"; 
$day_2="sep_29"; 
$day_3="sep_30"; 

$query = mysql_query("SELECT * FROM table WHERE id = '$id'"); 

while ($row = mysql_fetch_assoc($query)) 
{ 

for ($i = 1; $i <= 3; $i++) 
    { 
     $dayVar = "day_".$i; 
     $dayVarCount = $row[$$dayVar]; 
     echo $$dayVar . ': ' . $dayVarCount . '<br>'; 

     $dayVar."_count". = $dayVarCount; 
    }  
} 

echo "$day_3_count"; 

?> 
+1

请描述你有什么麻烦。 IE:你实际拥有什么,以及你期望拥有什么。顺便说一下,表达式'$ dayVar。“_ count”。 = $ dayVarCount;'不能是变量赋值。 – Skrol29

+1

您能否向我们提供您收到的错误消息? – LuigiEdlCarno

+2

只需使用数组! – deceze

回答

2

我认为,$ dayVar你的变量赋值“_数”是。不正确或非法。我会尝试$ {$ dayVar。“_ count”}。

+0

哇,我不知道你可以在PHP中做到这一点。 – LuigiEdlCarno

0

由于Skrol29正确地说,该行不能工作:

的分配(分配值到veriable)始终具有形式

<variablename> <assignmentoperator> <value> 

在PHP中,这意味着:

$day_1 = "123" 
您已经使用过的

变量名通常不是通用的。如果你需要这样的功能,使用数组。 PHP arrays

0

你几乎在正确的位置..但。

for ($i = 1; $i <= 3; $i++) 
    { 
     $dayVar = "day_".$i; 
     $dayVarCount = $dayVar."_count"; 
    $$dayVarCount = $row[$$dayVar]; 
    }  


echo "$day_3_count"; 
0

试试这个,

<?php 
// Connect to server and select database. 
$host = "host here"; 
$username="username here"; 
$password="pass here"; 
$db_name="db here"; 
    mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
    if(mysql_select_db("$db_name")){echo "Success";}else{echo "cannot select DB";} 



    $day_1="sep_28"; 
    $day_2="sep_29"; 
    $day_3="sep_30"; 
    $id=1; 
    $query = mysql_query("SELECT * FROM `tab1` WHERE id = '$id'"); 

    while ($row = mysql_fetch_assoc($query)) 
    { 

    for ($i = 1; $i <= 3; $i++) 
    { 
    $dayVar = "day_".$i; 
    $dayVarCount = $row[$$dayVar]; 
    echo $$dayVar . ': ' . $dayVarCount . '<br>'; 

    ${$dayVar."_count"} = $dayVarCount; 
    }  
    } 

    echo "$day_3_count"; 

?> 


    <?php 
    // close connection 
    mysql_close(); 
    ?>