使用Sessions时,是否需要声明session_start()或ob_start()?这样做有什么好处呢?
谢谢!
答案 0 :(得分:6)
session_start()
来存储和读取$ _SESSION全局。
ob_start()
与会话完全分开。 ob_start()触发输出缓冲,它将所有输出存储在缓冲区中供以后使用。当PHP脚本结束时,缓冲区会自动刷新给用户。或者,您可以在执行中获取缓冲区的内容并调整内容。见下面的例子。
来自php.net的例子:
<?php
function callback($buffer)
{
// replace all the apples with oranges
return (str_replace("apples", "oranges", $buffer));
}
ob_start("callback");
?>
<html>
<body>
<p>It's like comparing apples to oranges.</p>
</body>
</html>
<?php
ob_end_flush();
?>
输出:
<html>
<body>
<p>It's like comparing oranges to oranges.</p>
</body>
</html>
答案 1 :(得分:1)
来自PHP手册
session_start() - 初始化会话数据
摘要:
session_start()创建会话或 恢复当前的基于 正在传递的当前会话ID 通过请求,例如GET,POST或a 曲奇饼。
如果要使用命名会话, 你必须先调用session_name() 调用session_start()。
session_start()将注册内部 用于URL重写的输出处理程序 trans-sid已启用。如果用户使用 ob_gzhandler或喜欢 ob_start(),输出顺序 处理程序非常重要 输出。例如,用户必须 在会话之前注册ob_gzhandler 启动。