1

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

这是我正在尝试做的一个例子......

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

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

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

这是为了输出:Test 3

如果 $var1 是 0 它会输出:Test 2

我已经尝试了许多其他方法,包括将“更改为”,或者甚至不包括它们,它要么显示 PHP 错误,要么除了“测试”文本之外什么都不显示。

编辑#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 文件之前尝试做的事情。

4

2 回答 2

0

它应该是:

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

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

于 2012-12-09T11:25:47.513 回答
0

一些东西:

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

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

所以正确的代码:

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

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

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

于 2012-12-09T11:29:00.183 回答