是否必须在每个函数内调用session_start?

时间:2013-06-29 15:52:53

标签: php class session

是否必须在类的每个函数中调用session_start()?像:


class User {

  var $username;

  function set_session_username($username) {
    session_start();  # do I really need to call this again?
    $_SESSION['username'] = $username;
  }


  function retrieve_session_username() {
    session_start(); # do I really need to call this again?
    $this -> username = $_SESSION['username'];
  }

}

session_start();

$user = new User();
$user -> set_session_username('savagewood');
$user -> retrieve_session_username();

echo $user -> username;


4 个答案:

答案 0 :(得分:3)

不,每个请求只需要调用一次。因此,运行的第一个脚本将其发布在该文件的顶部

答案 1 :(得分:1)

不,您需要在加载的页面中仅启动一次会话。不属于任何类别或职能。

答案 2 :(得分:1)

不,在您的应用发送任何输出之前,应在应用入口点调用一次session_start()

答案 3 :(得分:1)

您可以检查会话是否已启动:

if (!session_id())
  session_start();