php session变量的赋值模式

现有如下PHP代码:session_start();$p=10;$_SESSION['s1']=$p;$p=11;echo$_SESSION['s1'];为什么输出的是1... 现有如下PHP代码:
session_start();
$p = 10;
$_SESSION['s1'] = $p;
$p = 11;
echo $_SESSION['s1'];
为什么输出的是11啊,用var_dump查看session是引用类型的。
请问怎样让($_SESSION['s1'] = $p;)成为值传递?谢谢!
我是说为什么语句$_SESSION['s1'] = $p; 会引用传递。
说明:在php5.3.5中是引用传递(上面的代码输出为11);
在php5.2.1中是值传递(上面的代码输出为10)
请问怎样统一上面的两种情况?谢谢
展开
 我来答
郭某人来此
2015-10-03 · TA获得超过1646个赞
知道答主
回答量:952
采纳率:100%
帮助的人:90.2万
展开全部
因为$ps是一个变量

$_SESSION是全局变量

所以理应取$p的最终值

$_SESSION是引用变量

但是你可以把它赋值给一个自定义变量

例如$a = $_SESSION['s1']

这样就可以进行传值了

///////////
把它作为引用传递是Php语法问题吧

这个不是我们能决定的

目前这方面的讨论很少

而且没什么必要吧

它只是一种会话机制

去实现COOKIE实现不了的功能
袤袤雨
2011-02-17 · TA获得超过1145个赞
知道小有建树答主
回答量:819
采纳率:0%
帮助的人:832万
展开全部
因为$ps是一个变量

$_SESSION是全局变量

所以理应取$p的最终值

$_SESSION是引用变量

但是你可以把它赋值给一个自定义变量

例如$a = $_SESSION['s1']

这样就可以进行传值了

///////////
把它作为引用传递是Php语法问题吧

这个不是我们能决定的

目前这方面的讨论很少

而且没什么必要吧

它只是一种会话机制

去实现COOKIE实现不了的功能
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
emeipanda
2015-07-12 · 知道合伙人软件行家
emeipanda
知道合伙人软件行家
采纳数:329 获赞数:1494
曾获联想、华为、Juniper认证,现任职于四川省内江市GPS卫星监控中心总工程师,主持技术管理工作逾10年。

向TA提问 私信TA
展开全部
session_start();
$p = 10;
$_SESSION['s1'] = $p;
$p = 11;
echo $_SESSION['s1'];

输出结果为11
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式