1

基本的にはタイトルの通り。通常の変数をセッション変数にする方法は知っていますが($_SESSION['var'])、別の変数が含まれている場合はわかりません

これは私のコードです:

<?php
session_start();

$_SESSION["uname"] = "Tyler";

if (isset($_SESSION["coins{$uname}"])) 
{
    echo "$_SESSION["uname"] : $_SESSION["coins{$uname}"]";
}
elseif ($_SESSION["uname"] == "LOut")
{
    $_SESSION["coins{$uname}"] = "0";
    echo "Log In";
}
else
{
    $_SESSION["coins{$uname}"] = 500;
    echo "$_SESSION["uname"] : $_SESSION["coins{$uname}"]";
}
?>

私は次のことを試しました:

$_SESSION['{coins.$uname}']
$_SESSION['coins.$uname']
$_SESSION['coins.$_SESSION['uname']']

そして、他に何かを試したかどうかは覚えていません。

4

4 に答える 4

1

二重引用符は必要なものです。

$_SESSION["coins.$uname"]

または

$_SESSION["coins.{$_SESSION['uname']}"]

どちらも問題なく動作するはずです。

説明: 一重引用符は文字列をそのままカプセル化します。二重引用符は実際に文字列を解析し、その中に含まれる変数を置き換えます。場合によっては、変数が文字列内で明確に識別できないことがあります。次に例を示します。

print "This is the $numberth time"; 
// Expected: 'This is the 50th time'
// Actual:   'This is the  time'

この場合、中括弧を使用して変数を明確に区切ることができます。

print "This is the {$number}th time";

経験則として、私は通常、オブジェクトの属性または配列の値を中括弧で囲みます。

print "This is the {$this->number}th time";
print "This is the {$time['number']}th time";
于 2012-11-13T01:23:41.753 に答える
0

これを試すことができますか?

    $$coins = "Tyler";

    if (isset($$coins)) 
    {
    echo "uname : {$$coins}";
    }
    elseif ($$coins == "LOut")
    {
    $$coins = "0";
    echo "Log In";
    }
    else
    {
    $$coins = 500;
    echo "$uname : $$coins";
    }
    ?>

    <br>
    <a href="test.php">Test</a>

    </div>

    <div id="footer">

    </div>

だからあなたのセッションは

$_SESSION['$$coins']

これは私が変数変数を処理する方法です...

ディン

于 2012-11-13T01:44:00.860 に答える
0

試す

$_SESSION["coins{$uname}"]

違いは...

1)brace構文を使用する場合は二重引用符

.2)ここで連結にドット文字を使用していると思いますか?ブレース構文を使用する場合は必要ありません...

于 2012-11-13T01:23:21.610 に答える
0

あなたはそれが機能していないと言いますが、それを設定するかエコーするかが問題であるかどうかを指定していません:元の編集されていない質問に基づいて、2つの問題があります:

セッション変数の設定

これはうまくいくはずです:

$_SESSION["coins{$uname}"] = 500;

うまくいかない場合は、いくつかのステップに分割してみてください。

$tempname = 'coins'.$uname;
$_SESSION[$tempname] = 500;

今それをテストします。

セッション変数の出力

echo $_SESSION["coins{$uname}"];またecho $_SESSION[$tempname];

編集

コードに構文エラーがあります:

echo "$_SESSION["uname"] : $_SESSION["coins{$uname}"]";

["uname"] の引用符を開こうとすると、開始引用符 (") を誤って閉じてしまいます。試してください:

echo "$_SESSION['uname'] : ".$_SESSION["coins{$uname}"];
于 2012-11-13T01:59:19.053 に答える