0

すべてのアクティブなCookieを、名前がCookieの名前に対応する変数に設定しようとしています。これは、変数変数を使用して実行しようとしました。http://php.net/manual/en/language.variables.variable.php

function setcookie_vars() {
    if(isset($_SERVER["HTTP_COOKIE"])) {
        $cookies = explode(";", $_SERVER["HTTP_COOKIE"]);
        foreach($cookies as $cookie) {
            $parts = explode("=", $cookie);
            $name = trim($parts[0]);
            $value = trim($parts[1]);
            $$name = $value;
            return $$name;
        }
    }
}
print_r(${$test}); // should output the value for $_COOKIE["test"];

たとえば、Cookieの名前が「test」の場合、変数の名前は$ testになり、その名前のCookieに同じ値が設定されます。事前に設定されたCookieを使用してこれをテストしようとしましたが、次のようになりました(Cookieが既に設定されていることを確認しました)。

    Notice: Undefined variable: test in...
    Notice: Undefined variable: in...

かなりカスタマイズされているためか、ウェブ上でこれに似た問題を見つけることができませんでした。

4

1 に答える 1

0

関数全体を次のように置き換えます。

extract($_COOKIE, EXTR_PREFIX_ALL, 'cookie');

echo $cookie_nameOfCookie;
于 2012-08-29T04:17:31.223 に答える