0

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

4 回答 4

3

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

于 2013-06-29T15:54:37.150 回答
1

不,您只需要在加载的页面中启动一次会话。不在任何类或函数中。

于 2013-06-29T15:54:09.813 回答
1

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

于 2013-06-29T15:54:44.940 回答
1

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

if (!session_id())
  session_start();
于 2013-06-29T15:56:03.410 回答