这是我要执行的代码,它在我的本地主机和另一台服务器 PHP 版本 5.3.2-1ubuntu4.11 上运行良好,但这会在共享主机上的 PHP 版本 5.2.17 中产生问题
<?php
/* PHP version PHP Version 5.2.17
* Server API CGI/FastCGI
*/
session_start();
$products = array();
if (!isset($_SESSION['products'])) {
$products = array("somedata1", "somedata2", "somedata3");
$_SESSION['products'] = serialize($products);
$_SESSION['test_products'] = serialize($products);
echo "<br/>session products<br/>";
print_r(unserialize($_SESSION['products']));
echo "<br/>session test_products<br/>";
print_r(unserialize($_SESSION['test_products']));
} else {
echo "<br/>session products<br/>";
print_r(unserialize($_SESSION['products']));
echo "<br/>session test_products<br/>";
print_r(unserialize($_SESSION['test_products']));
}
?>
首次运行输出
session products
Array ( [0] => somedata1 [1] => somedata2 [2] => somedata3 )
session test_products
Array ( [0] => somedata1 [1] => somedata2 [2] => somedata3 )
但在重新加载
session products
Warning: unserialize() expects parameter 1 to be string, array given in /home/uaustral/public_html/itoi/test.php on line 17
session test_products
Array ( [0] => somedata1 [1] => somedata2 [2] => somedata3 )
相同的代码在我的 PHP 版本 PHP 版本 5.3.2-1ubuntu4.11 上运行良好
我错过了什么(在新的 PHP 版本中自动更正)还是旧版本的 PHP 错误?