1

動的で、キャッシュ ファイルから毎日 1 回更新される変数がありますが、変数を表示したい場合、キャッシュ ファイルに情報が保存されているにもかかわらず、変数は何も取得しません。

これは私がやろうとしていることの例です...

$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

' を " に変更する、またはそれらを含めないなど、他の多くの方法を試しましたが、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 に答える