亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? internals2.structure.modstruct.html

?? php的幫助文檔,涉及到PHP的案例和基本語法,以及實際應用內容
?? HTML
?? 第 1 頁 / 共 2 頁
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html> <head>  <title>The zend_module structure</title>  <meta http-equiv="content-type" content="text/html; charset=UTF-8"> </head> <body><div style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="internals2.structure.basics.html">Basic constructs</a></div> <div class="next" style="text-align: right; float: right;"><a href="internals2.structure.globals.html">Extension globals</a></div> <div class="up"><a href="internals2.structure.html">Extension structure</a></div> <div class="home"><a href="index.html">PHP Manual</a></div></div><hr /><div id="internals2.structure.modstruct" class="sect1">  <h2 class="title">The zend_module structure</h2>  <p class="para">   The main source file of a PHP extension contains several new constructs for   a C programmer. The most important of these, the one touched first when   starting a new extension, is the <i>zend_module</i> structure.   This structure contains a wealth of information that tells the Zend Engine   about the extension&#039;s dependencies, version, callbacks, and other critical   data. The structure has mutated considerably over time; this section will   focus on the structure as it has appeared since PHP 5.2, and will identify   the very few parts which have changed in PHP 5.3.  </p>    <p class="para">   The <i>zend_module</i> declaration from   <var class="filename">counter.c</var> looks like this before any code has been   written. The example file was generated by   <strong class="command">ext_skel --extname=counter</strong>, with some obsolete constructs   removed:  </p>    <div class="example" id="internals2.structure.modstruct.example-decl" name="internals2.structure.modstruct.example-decl">   <p><b>Example #1 zend_module declaration in the counter extension</b></p>   <div class="example-contents"><div class="cdata"><pre>/* {{{ counter_module_entry */zend_module_entry counter_module_entry = {    STANDARD_MODULE_HEADER,    &quot;counter&quot;,    counter_functions,    PHP_MINIT(counter),    PHP_MSHUTDOWN(counter),    PHP_RINIT(counter),        /* Replace with NULL if there&#039;s nothing to do at request start */    PHP_RSHUTDOWN(counter),    /* Replace with NULL if there&#039;s nothing to do at request end */    PHP_MINFO(counter),    &quot;0.1&quot;, /* Replace with version number for your extension */    STANDARD_MODULE_PROPERTIES};/* }}} */</pre></div>   </div>  </div>    <p class="para">   This may look a bit daunting at first glance, but most of it is very simple   to understand. Here&#039;s the declaration of <i>zend_module</i> from   <var class="filename">zend_modules.h</var> in PHP 5.3:  </p>    <div class="example" id="internals2.structure.modstruct.struct-defn" name="internals2.structure.modstruct.struct-defn">   <p><b>Example #2 zend_module definition in PHP 5.3</b></p>   <div class="example-contents"><div class="cdata"><pre>struct _zend_module_entry {    unsigned short size;    unsigned int zend_api;    unsigned char zend_debug;    unsigned char zts;    const struct _zend_ini_entry *ini_entry;    const struct _zend_module_dep *deps;    const char *name;    const struct _zend_function_entry *functions;    int (*module_startup_func)(INIT_FUNC_ARGS);    int (*module_shutdown_func)(SHUTDOWN_FUNC_ARGS);    int (*request_startup_func)(INIT_FUNC_ARGS);    int (*request_shutdown_func)(SHUTDOWN_FUNC_ARGS);    void (*info_func)(ZEND_MODULE_INFO_FUNC_ARGS);    const char *version;    size_t globals_size;#ifdef ZTS    ts_rsrc_id* globals_id_ptr;#else    void* globals_ptr;#endif    void (*globals_ctor)(void *global TSRMLS_DC);    void (*globals_dtor)(void *global TSRMLS_DC);    int (*post_deactivate_func)(void);    int module_started;    unsigned char type;    void *handle;    int module_number;};</pre></div>   </div>  </div>    <p class="para">   Many of these fields will never be touched by an extension writer. There are   a number of standard macros that set them to their proper values   automatically. The macro <b><tt>STANDARD_MODULE_HEADER</tt></b> fills in   everything up to the <var class="varname">deps</var> field. Alternatively, the   <b><tt>STANDARD_MODULE_HEADER_EX</tt></b> will leave the   <var class="varname">deps</var> field empty for the developer&#039;s use. The developer is   always responsible for everything from <var class="varname">name</var> to   <var class="varname">version</var>. After that, the   <b><tt>STANDARD_MODULE_PROPERTIES</tt></b> macro will fill in the rest   of the structure, or the <b><tt>STANDARD_MODULE_PROPERTIES_EX</tt></b>   macro can be used to leave the extension globals and post-deactivation   function fields unfilled. Most modern extensions will make use of module   globals.  </p>    <blockquote><p><b class="note">Note</b>:        This table gives the values that each field would have if the developer    were to fill in the structure entirely by hand, without recourse to any of    the shortcut macros. <em class="emphasis">This is not recommended.</em> The    &quot;correct&quot; values for many fields may change. Use the macros    whenever possible.   <br />  </p></blockquote>  <table border="5">   <caption><b>Module structure field values</b></caption>   <colgroup>    <thead valign="middle">     <tr valign="middle">      <th colspan="1">Field</th>      <th colspan="1">Value</th>      <th colspan="1">Description</th>     </tr>    </thead>    <tbody valign="middle" class="tbody">     <tr valign="middle">      <td colspan="1" rowspan="1" align="left">       <var class="varname">size</var>       <a href="#fnidinternals2.structure.modstruct.struct-values.not-for-dev" name="fninternals2.structure.modstruct.struct-values.not-for-dev"><sup>[1]</sup></a>                      <a href="#fnidinternals2.structure.modstruct.struct-values.given-by-SMHE" name="fninternals2.structure.modstruct.struct-values.given-by-SMHE"><sup>[2]</sup></a>                      <a href="#fnidinternals2.structure.modstruct.struct-values.given-by-SMH" name="fninternals2.structure.modstruct.struct-values.given-by-SMH"><sup>[3]</sup></a>                     </td>      <td colspan="1" rowspan="1" align="left"><code class="code">sizeof(zend_module_entry)</code></td>      <td colspan="1" rowspan="1" align="left">       The size in bytes of the structure.      </td>     </tr>          <tr valign="middle">      <td colspan="1" rowspan="1" align="left">       <var class="varname">zend_api</var>       <a href="#fnidinternals2.structure.modstruct.struct-values.not-for-dev"><sup>[1]</sup></a>       <a href="#fnidinternals2.structure.modstruct.struct-values.given-by-SMHE"><sup>[2]</sup></a>       <a href="#fnidinternals2.structure.modstruct.struct-values.given-by-SMH"><sup>[3]</sup></a>      </td>      <td colspan="1" rowspan="1" align="left"><b><tt>ZEND_MODULE_API_NO</tt></b></td>      <td colspan="1" rowspan="1" align="left">       The version of the Zend API this module was compiled against.      </td>     </tr>          <tr valign="middle">      <td colspan="1" rowspan="1" align="left">       <var class="varname">zend_debug</var>       <a href="#fnidinternals2.structure.modstruct.struct-values.not-for-dev"><sup>[1]</sup></a>       <a href="#fnidinternals2.structure.modstruct.struct-values.given-by-SMHE"><sup>[2]</sup></a>       <a href="#fnidinternals2.structure.modstruct.struct-values.given-by-SMH"><sup>[3]</sup></a>      </td>      <td colspan="1" rowspan="1" align="left"><b><tt>ZEND_DEBUG</tt></b></td>      <td colspan="1" rowspan="1" align="left">       A flag indicating whether the module was compiled with debugging turned       on.      </td>     </tr>          <tr valign="middle">      <td colspan="1" rowspan="1" align="left">       <var class="varname">zts</var>       <a href="#fnidinternals2.structure.modstruct.struct-values.not-for-dev"><sup>[1]</sup></a>       <a href="#fnidinternals2.structure.modstruct.struct-values.given-by-SMHE"><sup>[2]</sup></a>       <a href="#fnidinternals2.structure.modstruct.struct-values.given-by-SMH"><sup>[3]</sup></a>      </td>      <td colspan="1" rowspan="1" align="left"><b><tt>USING_ZTS</tt></b></td>      <td colspan="1" rowspan="1" align="left">       A flag indicating whether the module was compiled with ZTS (TSRM) enabled       (see <a href="internals2.memory.html" class="xref">Memory management</a>).      </td>     </tr>          <tr valign="middle">      <td colspan="1" rowspan="1" align="left">       <var class="varname">ini_entry</var>       <a href="#fnidinternals2.structure.modstruct.struct-values.not-for-dev"><sup>[1]</sup></a>       <a href="#fnidinternals2.structure.modstruct.struct-values.given-by-SMH"><sup>[3]</sup></a>      </td>      <td colspan="1" rowspan="1" align="left"><b><tt>NULL</tt></b></td>      <td colspan="1" rowspan="1" align="left">       This pointer is used internally by Zend to keep a non-local reference to       any INI entries declared for the module.      </td>     </tr>          <tr valign="middle">      <td colspan="1" rowspan="1" align="left">       <var class="varname">deps</var>       <a href="#fnidinternals2.structure.modstruct.struct-values.given-by-SMH"><sup>[3]</sup></a>      </td>      <td colspan="1" rowspan="1" align="left"><b><tt>NULL</tt></b></td>      <td colspan="1" rowspan="1" align="left">       A pointer to a list of dependencies for the module.      </td>     </tr>     <tr valign="middle">      <td colspan="1" rowspan="1" align="left">       <var class="varname">name</var>      </td>      <td colspan="1" rowspan="1" align="left">&quot;mymodule&quot;</td>      <td colspan="1" rowspan="1" align="left">       The name of the module. This is the short name, such as &quot;spl&quot;       or &quot;standard&quot;.      </td>     </tr>          <tr valign="middle">      <td colspan="1" rowspan="1" align="left">       <var class="varname">functions</var>      </td>      <td colspan="1" rowspan="1" align="left">mymodule_functions</td>      <td colspan="1" rowspan="1" align="left">       A pointer to the module&#039;s function table, which Zend uses to expose       functions in the module to user space.      </td>     </tr>          <tr valign="middle">      <td colspan="1" rowspan="1" align="left">       <var class="varname">module_startup_func</var>      </td>      <td colspan="1" rowspan="1" align="left">PHP_MINIT(mymodule)</td>      <td colspan="1" rowspan="1" align="left">       A callback function that Zend will call the first time a module is loaded       into a particular instance of PHP.      </td>     </tr>     <tr valign="middle">      <td colspan="1" rowspan="1" align="left">       <var class="varname">module_shutdown_func</var>      </td>      <td colspan="1" rowspan="1" align="left">PHP_MSHUTDOWN(mymodule)</td>      <td colspan="1" rowspan="1" align="left">       A callback function that Zend will call the when a module is unloaded       from a particular instance of PHP, typically during final shutdown.      </td>     </tr>     <tr valign="middle">      <td colspan="1" rowspan="1" align="left">       <var class="varname">request_startup_func</var>      </td>      <td colspan="1" rowspan="1" align="left">PHP_RINIT(mymodule)</td>      <td colspan="1" rowspan="1" align="left">       A callback function that Zend will call at the beginning of each request.      </td>     </tr>     <tr valign="middle">      <td colspan="1" rowspan="1" align="left">       <var class="varname">request_shutdown_func</var>      </td>      <td colspan="1" rowspan="1" align="left">PHP_RSHUTDOWN(mymodule)</td>      <td colspan="1" rowspan="1" align="left">       A callback function that Zend will call at the end of each request.      </td>     </tr>     <tr valign="middle">      <td colspan="1" rowspan="1" align="left">       <var class="varname">info_func</var>      </td>      <td colspan="1" rowspan="1" align="left">PHP_MINFO(mymodule)</td>      <td colspan="1" rowspan="1" align="left">       A callback function that Zend will call when the <a href="function.phpinfo.html" class="function">phpinfo()</a>       function is called.      </td>     </tr>     <tr valign="middle">      <td colspan="1" rowspan="1" align="left">       <var class="varname">version</var>      </td>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人国产精品免费观看视频| 亚洲视频一区二区免费在线观看| 肉丝袜脚交视频一区二区| 欧美日韩国产另类一区| 亚洲国产精品一区二区久久恐怖片 | 中文字幕精品一区二区精品绿巨人 | 亚洲午夜久久久| 欧美欧美午夜aⅴ在线观看| 亚洲午夜精品17c| 7777精品伊人久久久大香线蕉| 日韩综合一区二区| 久久伊99综合婷婷久久伊| 夫妻av一区二区| 亚洲精品自拍动漫在线| 欧美色爱综合网| 黄一区二区三区| 欧美国产日产图区| 欧美亚洲一区三区| 蜜臂av日日欢夜夜爽一区| 国产日韩综合av| 欧美午夜电影网| 久久不见久久见免费视频7| 欧美国产精品劲爆| 欧美亚洲动漫精品| 久久疯狂做爰流白浆xx| 国产精品国产自产拍在线| 欧美三级一区二区| 国产成人一区二区精品非洲| 亚洲久草在线视频| 欧美精品一区二区三区一线天视频| 成人免费va视频| 日韩电影在线看| 国产精品久久久久久一区二区三区| 欧美视频一区二区三区在线观看| 国内成人免费视频| 亚洲国产精品精华液网站| 久久久av毛片精品| 欧美三级电影精品| 99热国产精品| 精品一区二区三区欧美| 亚洲一区二区三区精品在线| 国产亚洲一二三区| 91麻豆精品91久久久久同性| 91免费视频网址| 激情综合色播五月| 天天射综合影视| 亚洲欧美日韩精品久久久久| 国产亚洲污的网站| 欧美一二三在线| 欧美手机在线视频| 99re这里都是精品| 国产精品18久久久久久vr| 石原莉奈在线亚洲二区| 亚洲激情校园春色| 欧美激情一区不卡| 精品粉嫩aⅴ一区二区三区四区 | 欧美人与禽zozo性伦| 99这里只有久久精品视频| 国产又粗又猛又爽又黄91精品| 天天操天天干天天综合网| 亚洲精品久久久蜜桃| 国产精品久久免费看| 精品国产91洋老外米糕| 欧美一级理论片| 在线不卡一区二区| 欧美调教femdomvk| 日本精品一级二级| 色婷婷激情综合| 99这里只有精品| 91亚洲精品久久久蜜桃| 国产馆精品极品| 国产黄色91视频| 成人白浆超碰人人人人| 国产成人无遮挡在线视频| 国内精品伊人久久久久影院对白| 免费精品视频在线| 久久精品国产精品青草| 免费美女久久99| 激情成人午夜视频| 国产91精品免费| 国产成人精品免费一区二区| 国产成人av福利| 国产成人在线网站| 国产成人aaa| 成人av手机在线观看| av电影在线观看一区| 99久久精品国产网站| 色婷婷av一区二区三区大白胸 | 成人听书哪个软件好| 国产91精品一区二区麻豆网站| 成人美女在线视频| 91视频.com| 欧美天堂亚洲电影院在线播放| 欧美久久一区二区| 一区二区三区加勒比av| 午夜精品福利一区二区三区蜜桃| 丝袜脚交一区二区| 久久狠狠亚洲综合| 国产1区2区3区精品美女| 成人高清免费观看| 在线免费观看不卡av| 91精品国模一区二区三区| 久久婷婷国产综合精品青草 | 欧美天堂亚洲电影院在线播放| 7777精品伊人久久久大香线蕉| 精品毛片乱码1区2区3区| 国产精品美女久久久久久久| 一级女性全黄久久生活片免费| 亚洲第一会所有码转帖| 精品午夜久久福利影院| 91丝袜呻吟高潮美腿白嫩在线观看| 色吧成人激情小说| 在线电影国产精品| 国产精品久99| 婷婷综合久久一区二区三区| 精品亚洲国内自在自线福利| 97久久超碰国产精品| 日韩一区二区三区免费观看| 国产精品视频看| 日韩av在线免费观看不卡| 国产精品一二三四区| 在线观看欧美精品| 久久久不卡网国产精品二区| 亚洲一区二区av在线| 国产精品18久久久久| 欧美日本一区二区在线观看| 国产夜色精品一区二区av| 亚洲v中文字幕| www.亚洲在线| 久久毛片高清国产| 午夜在线电影亚洲一区| 高清不卡在线观看| 欧美一级片免费看| 亚洲精品网站在线观看| 国产乱码精品一区二区三| 欧美剧情电影在线观看完整版免费励志电影 | 美女视频一区二区三区| 一本久久a久久免费精品不卡| 欧美精品一区二区在线播放| 亚洲电影在线免费观看| 99久精品国产| 亚洲国产高清aⅴ视频| 精品无人区卡一卡二卡三乱码免费卡| 色婷婷精品大视频在线蜜桃视频| 国产日产精品1区| 久久99国产精品久久99果冻传媒| 精品视频一区三区九区| 亚洲欧美日韩系列| 成人国产精品免费网站| 国产午夜精品久久久久久免费视| 男女激情视频一区| 欧美日韩国产色站一区二区三区| 亚洲美女屁股眼交3| 99九九99九九九视频精品| 国产精品美女一区二区| 粉嫩aⅴ一区二区三区四区五区| 亚洲精品一区二区三区福利| 蜜臀a∨国产成人精品| 欧美久久久久免费| 亚洲午夜免费福利视频| 91看片淫黄大片一级| 国产精品白丝在线| 亚洲免费在线观看视频| 91视频91自| 亚洲午夜免费电影| 色播五月激情综合网| 亚洲亚洲人成综合网络| 国产一区二区日韩精品| 欧美一区二区三区的| 蜜桃视频一区二区三区在线观看| 欧美日韩一区不卡| 日韩国产欧美在线观看| 成人高清在线视频| 亚洲欧美另类综合偷拍| 91久久线看在观草草青青 | 1000部国产精品成人观看| 九色综合国产一区二区三区| 欧美成人综合网站| 久久国产福利国产秒拍| 久久久精品国产免大香伊| 成人性生交大片免费看在线播放| 久久久久久久久久久久久夜| 成人午夜av电影| 中文字幕一区二区视频| 色老汉一区二区三区| 亚洲国产成人高清精品| 在线综合视频播放| 国产真实乱偷精品视频免| 久久久久久免费| 91农村精品一区二区在线| 香蕉加勒比综合久久| 91精品欧美一区二区三区综合在| 国内精品国产三级国产a久久| 337p粉嫩大胆色噜噜噜噜亚洲| 国产在线日韩欧美| 欧美国产日韩精品免费观看| 91在线视频在线| 日韩精品国产精品| 国产欧美日韩不卡免费| 成人av片在线观看|