作者:zhanhailiang 日期:2014-10-20
日常の開発では、php.ini はセッションを閉じるためにデフォルトで session.auto_start=0 を設定します。セッションを開きたい場合は、session_start を呼び出す必要があります。
<?php session_start();//...
ソース コードをチェックすると、session_start が次のように定義されていることがわかります:
1881 /* {{{ proto bool session_start(void) 1882 Begin session - reinitializes freezed variables, registers browsers etc */1883 static PHP_FUNCTION(session_start)1884 {1885 /* skipping check for non-zero args for performance reasons here ?*/1886 php_session_start(TSRMLS_C);1887 1888 if (PS(session_status) != php_session_active) {1889 RETURN_FALSE;1890 }1891 RETURN_TRUE;1892 }
session_start は基本的に php_session_start を呼び出してセッションを開始することがわかります。
php.ini で session.auto_start=1 を変更し、デフォルトでセッションを開くと、セッションを開くために RINIT (リクエストの初期化) で php_session_start が自動的に呼び出されることがソース コードからわかります。