在PHP中,它可能有一個數組,其中一個字符串以前存儲?php無法創建和分配數組
echo "valuebefore: ".$_SESSION['REQUEST_TOKEN'][TL_MODE];
$_SESSION['REQUEST_TOKEN'][TL_MODE] = "somestring";
echo "typebefore: ".gettype($_SESSION['REQUEST_TOKEN'][TL_MODE]);
$_SESSION['REQUEST_TOKEN'][TL_MODE] = array();
echo "typeafter: ".gettype($_SESSION['REQUEST_TOKEN'][TL_MODE]);
if (!is_array($_SESSION['REQUEST_TOKEN'][TL_MODE]))
{
echo "is not an array";
}
echo "valueafter: ".$_SESSION['REQUEST_TOKEN'][TL_MODE];
,輸出是:
valuebefore: A
typebefore: string
typeafter: string << the type didnt change to array!
is not an array
valueafter: A << the value was not updated!
爲什麼不能只是抱着新的陣列? 價值怎麼樣也沒變?
編輯:
這裏涉及其他變量的vardump:
echo var_dump(TL_MODE)." <br/>";
echo var_dump($_SESSION['REQUEST_TOKEN'])." <br/>";
echo var_dump($_SESSION['REQUEST_TOKEN'][TL_MODE])." <br/>";
輸出:
string(2) "FE"
string(32) "A96665c9f1e41d1745bf3a3d75cff33a"
string(1) "A"
這裏工作正常:valuebefore: typebefore:string typeafter:array valueafter:Array –
它可能是一些PHP配置可能嗎? – sapeish
你可以嘗試用普通的'數組'而不是'會話'做這個嗎?看起來你的會議可能是問題。它也適用於我使用會話。 – ace