我有一個很奇怪的問題。這裏是我的腳本:使用PHP會話的瘋狂事情(會話變量在未請求時由refrence分配)
<?php
session_start();
$_SESSION['test'] = '123';
var_dump($_SESSION);
echo "<br />\n";
$test = $_SESSION['test'];
var_dump($test);
echo "<br />\n";
$_SESSION['test'] = '1234';
var_dump($test);
我在5.3.5運行此腳本,並得到以下的輸出:
array(1) { ["test"]=> &string(3) "123" }
string(3) "123"
string(4) "1234"
注意,「測試」會話變量存儲爲參考,以「123」字符串["test"]=> &string(3) "123"
。 ???這是爲什麼?
然後爲會話變量分配一個新值,$test
也被更改。所以$test
變量的行爲就像是對$_SESSION['test']
的引用。我根本沒有要求這個。
當在PHP 5.5.1上運行相同的腳本時,一切正常。我的PHP安裝是否被破壞?任何人都有線索?
可能的重複[在PHP中,爲什麼我的會話變量作爲引用持久?](http://stackoverflow.com/questions/4765483/in-php-why-are-my-session-variables-persisted-as -references) –
不通過參考轉讓給我:http://codepad.viper-7.com/l7TBnR –