php初学者,碰到一个关于session的问题看下面两份代码
<?php
// Initiate the session
session_start();
?>
<html>
<head>
<title>Session</title>
</head>
<body>
<?php
if (!isset($_SESSION["tracker1"]))
{
$tracker1 = 5;
session_register("tracker1");
}
print("tracker1 is " . $_SESSION["tracker1"] . "<br />");
?>
</body>
</html>这时能成功显示 "tracker1 is 5" 字样而
<?php
// Initiate the session
class tracker
{
var $counter;
// constructor
function tracker() {
$this->counter = 5;
}
}
session_start();
?>
<html>
<head>
<title>Session</title>
</head>
<body>
<?php
if (!isset($_SESSION["tracker2"]))
{
$tracker2 = new tracker;
session_register("tracker2");
}
print("count of tracker2 is " . $_SESSION["tracker2"]->counter . "<br />");
?>
</body>
</html>此时显示 "count of trackers is " 而没有显示5。想问一下有经验的朋友,第二中情况应该怎样用session才能显示5呢?
<?php
// Initiate the session
session_start();
?>
<html>
<head>
<title>Session</title>
</head>
<body>
<?php
if (!isset($_SESSION["tracker1"]))
{
$tracker1 = 5;
session_register("tracker1");
}
print("tracker1 is " . $_SESSION["tracker1"] . "<br />");
?>
</body>
</html>这时能成功显示 "tracker1 is 5" 字样而
<?php
// Initiate the session
class tracker
{
var $counter;
// constructor
function tracker() {
$this->counter = 5;
}
}
session_start();
?>
<html>
<head>
<title>Session</title>
</head>
<body>
<?php
if (!isset($_SESSION["tracker2"]))
{
$tracker2 = new tracker;
session_register("tracker2");
}
print("count of tracker2 is " . $_SESSION["tracker2"]->counter . "<br />");
?>
</body>
</html>此时显示 "count of trackers is " 而没有显示5。想问一下有经验的朋友,第二中情况应该怎样用session才能显示5呢?
// Initiate the session
class tracker
{
var $counter;
// constructor
function tracker() {
$this->counter = 5;
}
}
session_start();
?>
<html>
<head>
<title>Session </title>
</head>
<body>
<?php
if (isset($_SESSION["tracker2"]))
{
$_SESSION['tracker2'] = new tracker;
}
print("count of tracker2 is " . $_SESSION["tracker2"]->counter . " <br />");
?>
</body>
</html>
$tracker2已经是对象实例了;你再session_register("tracker2");把它当作一个变量!~
这是为什么不能显示的原因。
把这个拿掉。session_register是新注册的意思,你重新注册了tracker2,自然不可能有值啦。