【问题标题】:Make variable variable accessible outside of loop使变量变量在循环外可访问
【发布时间】:2012-10-01 07:44:32
【问题描述】:

我正在尝试使循环变量变量可以在循环之外访问。一切正常,但我在这段代码中遇到了问题:

$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";

?>

【问题讨论】:

  • 请描述您遇到的问题。 IE:你实际拥有什么,以及你期望拥有什么。顺便说一句,表达式$dayVar."_count". = $dayVarCount;不能是变量赋值。
  • 您能否向我们提供您收到的错误消息?
  • $day_1="sep_28";的意义是什么?这对你想做的事情很重要吗?我认为如果是这样,答案可能会改变。

标签: php mysql for-loop


【解决方案1】:

我认为您对 $dayVar."_count" 的变量赋值不正确或非法。我会尝试 ${$dayVar."_count"} 代替。

【讨论】:

  • 哇,我不知道你可以在 php 中做到这一点。
【解决方案2】:

正如 Skrol29 所说,那条线行不通:

一个赋值(给一个可验证的赋值)总是有这种形式

<variablename> <assignmentoperator> <value>

在 php 中表示:

$day_1 = "123"

你已经用过。

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

【讨论】:

    【解决方案3】:

    你几乎是在正确的地方..但是。

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

    【讨论】:

      【解决方案4】:

      试试这个,

       <?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();
        ?>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-11-11
        • 1970-01-01
        • 1970-01-01
        • 2017-03-13
        • 1970-01-01
        • 1970-01-01
        • 2012-06-17
        • 1970-01-01
        相关资源
        最近更新 更多