session原理

PHP Session原理分析

浪尽此生 提交于 2019-12-10 03:38:32
Session是以扩展的形式嵌入到PHP内核的,所以我们可以把Session当成扩展来看待。一般扩展被载入到PHP时会调用扩展的MINIT函数,Session也不例外,当Session被载入到PHP内核时,MINIT函数将会被调用,Session的MINIT函数代码如下: PHP_RINIT_FUNCTION(session) { php_rinit_session_globals(TSRMLS_C); if (PS(mod) == NULL) { char *value; value = zend_ini_string("session.save_handler", sizeof("session.save_handler"), 0); if (value) { /* 查找save_handler */ PS(mod) = _php_find_ps_module(value TSRMLS_CC); } if (!PS(mod)) { PS(session_status) = php_session_disabled; return SUCCESS; } } if (PS(auto_start)) { /* 是否开启了session.auto_start功能 */ php_session_start(TSRMLS_C); } return SUCCESS; }