php 變數生命週期:PHP源碼分析-PHP的生命週期

來源:互聯網
上載者:User

PHP的最多的兩種運行模式是WEB模式、CLI模式。
無論哪種模式,PHP工作原理都是一樣的,作為一種SAPI運行。
1、當我們在終端敲入php這個命令的時候,它使用的是CLI。
它就像一個web伺服器一樣來支援php完成這個請求,請求完成後再重新把控制權交給終端。
2、當使用Apache作為宿主時,當一個請求到來時,PHP會來支援完成這個請求。
main/php.h中定義了以下幾個宏
#define PHP_MINIT_FUNCTIONZEND_MODULE_STARTUP_D
#define PHP_MSHUTDOWN_FUNCTIONZEND_MODULE_SHUTDOWN_D
#define PHP_RINIT_FUNCTIONZEND_MODULE_ACTIVATE_D
#define PHP_RSHUTDOWN_FUNCTIONZEND_MODULE_DEACTIVATE_D
#define PHP_MINFO_FUNCTIONZEND_MODULE_INFO_D
#define PHP_GINIT_FUNCTIONZEND_GINIT_FUNCTION
#define PHP_GSHUTDOWN_FUNCTIONZEND_GSHUTDOWN_FUNCTION
對應的作用是
PHP_MINIT_FUNCTION初始化module時運行
PHP_MSHUTDOWN_FUNCTION當module被卸載時運行
PHP_RINIT_FUNCTION當一個REQUEST請求初始化時運行
PHP_RSHUTDOWN_FUNCTION當一個REQUEST請求結束時運行
PHP_MINFO_FUNCTION這個是設定phpinfo中這個模組的資訊
PHP_GINIT_FUNCTION初始化全域變數時
PHP_GSHUTDOWN_FUNCTION釋放全域變數時
看一個自訂擴充案例片段:
int minit_time;
PHP_MINIT_FUNCTION(test)
{
minit_time = time(NULL);
return SUCCESS;
}
PHP_MSHUTDOWN_FUNCTION(test)
{
FILE *fp=fopen("mshutdown.txt","a+");
fprintf(fp,"%ld\n",time(NULL));//讓我們看看是不是每次請求結束都會在這個檔案裡追加資料
fclose(fp);
return SUCCESS;
}
int rinit_time;
PHP_RINIT_FUNCTION(test)
{
rinit_time = time(NULL);
return SUCCESS;
}
PHP_RSHUTDOWN_FUNCTION(test)
{
FILE *fp=fopen("rshutdown.txt","a+");
fprintf(fp,"%ld\n",time(NULL));//讓我們看看是不是每次請求結束都會在這個檔案裡追加資料
fclose(fp);
return SUCCESS;
}
PHP_MINFO_FUNCTION(test)
{
php_info_print_table_start();//調用php_write輸出HTML標籤
php_info_print_table_header(2, "module info", "enabled"); 本文連結http://www.cxybl.com/html/wlbc/Php/20121221/35071.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.