我有一个动态的变量,每天从缓存文件更新一次,但是当我希望显示变量时,尽管我的缓存文件存储了信息,但它什么都没有。
这是我想要做的一个例子......
$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文件之前尝试做的。
答案 0 :(得分:0)
应该是:
echo "Test ".$var2[$var1];
$ var1是一个变量,所以它不应该在''。
中答案 1 :(得分:0)
一些事情:
并非所有PHP数组都是关联的。以下是有效且更有效的:
$var2 = array(1 => "Male", 2 => "Female");
变量名称不需要在语句中进行字符串化。导致您的具体问题是因为'$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不是您认为的那样。确保。