PHP中的动态变量和数组

时间:2012-12-09 11:23:25

标签: php arrays

我有一个动态的变量,每天从缓存文件更新一次,但是当我希望显示变量时,尽管我的缓存文件存储了信息,但它什么都没有。

这是我想要做的一个例子......

$var1 = "1"; // Dynamic info that is previously pulled from the cache file. 
$var2 = array (
"0" => "2",
"1" => "3" );

现在我要显示数组某个部分的内容......

echo "Test ".$var2['$var1'];

这意味着输出:测试3

如果$ var1为0,则输出:Test 2

我已经尝试了很多其他方法,包括更改'to',或者甚至不包括它们,它会显示PHP错误或者除了“Test”文本之外什么都不显示。

编辑#1: 好的,这就是为了解释我做得更好一点。

首先,我从一个文件中取出并替换我不需要的任何附件......

$myFile = "http://someserver.com/afile.txt";
$lines = file($myFile);
$ngender = preg_replace('/Gender=/', '', $lines[3]);

现在,我知道上面的代码工作正常,当我到达数组时我遇到了问题..

$ngen = array (
1 => "Male",
2 => "Female"
);

然后我使用$ ngen [$ ngender];将它存储到xml文件中,但它不存储任何内容。这实际上是我在将其存储到xml文件之前尝试做的。

2 个答案:

答案 0 :(得分:0)

应该是:

echo "Test ".$var2[$var1];

$ var1是一个变量,所以它不应该在''。

答案 1 :(得分:0)

一些事情:

  1. 并非所有PHP数组都是关联的。以下是有效且更有效的:

    $var2 = array(1 => "Male", 2 => "Female");
    
  2. 变量名称不需要在语句中进行字符串化。导致您的具体问题是因为'$var2'将评估为文字字符串$var2,而"$var2"将评估为"1"

  3. 所以正确的代码:

    $var1 = "1"; // Dynamic info that is previously pulled from the cache file.
    $var2 = array(1 => "Male", 2 => "Female");
    
    echo "Test ".$var2[$var1];
    

    您在其他答案的评论中发布的错误表明$ var1不是您认为的那样。确保。