<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>底层原理 on Yison's Blog</title><link>https://blog.7ys.top/tags/%E5%BA%95%E5%B1%82%E5%8E%9F%E7%90%86/</link><description>Recent content in 底层原理 on Yison's Blog</description><generator>Hugo -- gohugo.io</generator><language>zh-CN</language><lastBuildDate>Fri, 27 Apr 2018 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.7ys.top/tags/%E5%BA%95%E5%B1%82%E5%8E%9F%E7%90%86/index.xml" rel="self" type="application/rss+xml"/><item><title>《PHP7内核剖析》之PHP基础架构</title><link>https://blog.7ys.top/posts/php7%E5%86%85%E6%A0%B8%E5%89%96%E6%9E%90%E4%B9%8Bphp%E5%9F%BA%E7%A1%80%E6%9E%B6%E6%9E%84/</link><pubDate>Fri, 27 Apr 2018 00:00:00 +0000</pubDate><guid>https://blog.7ys.top/posts/php7%E5%86%85%E6%A0%B8%E5%89%96%E6%9E%90%E4%B9%8Bphp%E5%9F%BA%E7%A1%80%E6%9E%B6%E6%9E%84/</guid><description>&lt;img src="https://blog.7ys.top/" alt="Featured image of post 《PHP7内核剖析》之PHP基础架构" /&gt;
 &lt;blockquote&gt;
 &lt;p&gt;有幸在读秦朋的《PHP 内核剖析》一书，收获良多。为了加深理解，依照书中内容整理了 PHP 的基本架构和生命周期。&lt;/p&gt;

 &lt;/blockquote&gt;
&lt;h2 id="php-的构成"&gt;PHP 的构成
&lt;/h2&gt;&lt;p&gt;PHP 的源代码主要由以下几个核心模块组成：&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;┌─────────────────────────────────────────────────────┐
│ PHP 架构图 │
├─────────────────────────────────────────────────────┤
│ ┌─────────┐ │
│ │ SAPI │ ← 应用接口层（Apache2Handler/FastCGI）│
│ └────┬────┘ │
│ ┌────▼────┐ │
│ │ main │ ← 输入/输出、Web通信、框架初始化 │
│ └────┬────┘ │
│ ┌────▼────┐ │
│ │ Zend │ ← PHP 解析器核心（Zend Engine） │
│ └────┬────┘ │
│ ┌────▼────┐ │
│ │ ext │ ← PHP 扩展目录 │
│ └─────────┘ │
│ ┌─────────┐ │
│ │ TSRM │ ← 线程安全资源管理 │
│ └─────────┘ │
└─────────────────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="核心模块说明"&gt;核心模块说明
&lt;/h3&gt;&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: left"&gt;模块&lt;/th&gt;
 &lt;th style="text-align: left"&gt;说明&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;strong&gt;SAPI&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Server Application Programming Interface，PHP 的应用接口层，负责与 Web 服务器交互&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;strong&gt;main&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;PHP 的核心代码，处理输入/输出、Web 通信、扩展加载、配置解析等工作&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;strong&gt;Zend&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;PHP 解析器的主要实现，即 Zend Engine，是 PHP 语言的核心&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;strong&gt;ext&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;PHP 的扩展目录，提供了各种功能的扩展（GD、MySQL、JSON 等）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;strong&gt;TSRM&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: left"&gt;Thread Safe Resource Manager，线程安全相关的实现&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="各模块协作关系"&gt;各模块协作关系
&lt;/h3&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;Web Server (Apache/Nginx)
 │
 ▼
 SAPI Layer
 │
 ▼
 main (请求初始化、配置解析)
 │
 ▼
 Zend Engine (词法分析 → 语法分析 → 编译 → 执行)
 │
 ▼
 PHP Extensions (提供各种内置函数)
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="php-的生命周期"&gt;PHP 的生命周期
&lt;/h2&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;┌─────────────────────────────────────────────────────────────┐
│ PHP 生命周期 │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌───────────────────┐ │
│ │ 模块初始化阶段 │ MINIT (Module Initialization) │
│ │ (PHP-FPM 启动时) │ - 加载扩展 │
│ └─────────┬─────────┘ - 初始化扩展 │
│ │ - 注册常量/函数 │
│ ▼ │
│ ┌───────────────────┐ │
│ │ 请求初始化阶段 │ RINIT (Request Initialization) │
│ │ (每个请求开始时) │ - 重置全局变量 │
│ └─────────┬─────────┘ - 初始化静态变量 │
│ │ - 启动 session │
│ ▼ │
│ ┌───────────────────┐ │
│ │ 执行脚本阶段 │ Execute Script │
│ │ (核心执行期) │ - 编译 PHP 代码为 OpCodes │
│ └─────────┬─────────┘ - 执行 OpCodes │
│ │ - 输出响应 │
│ ▼ │
│ ┌───────────────────┐ │
│ │ 请求关闭阶段 │ RSHUTDOWN (Request Shutdown) │
│ │ (每个请求结束时) │ - 刷新输出缓冲区 │
│ └─────────┬─────────┘ - 发送 HTTP 响应 │
│ │ - 清理全局变量 │
│ ▼ │
│ ┌───────────────────┐ │
│ │ 模块关闭阶段 │ MSHUTDOWN (Module Shutdown) │
│ │ (PHP-FPM 关闭时) │ - 关闭扩展 │
│ └───────────────────┘ - 释放资源 │
│ │
└─────────────────────────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="1-模块初始化阶段-minit"&gt;1. 模块初始化阶段 (MINIT)
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-c" data-lang="c"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;// PHP 扩展中的模块初始化函数
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;PHP_MINIT_FUNCTION&lt;/span&gt;(my_extension)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// 注册常量
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;REGISTER_STRING_CONSTANT&lt;/span&gt;(&lt;span style="color:#e6db74"&gt;&amp;#34;MY_EXT_VERSION&amp;#34;&lt;/span&gt;, &lt;span style="color:#e6db74"&gt;&amp;#34;1.0.0&amp;#34;&lt;/span&gt;, CONST_PERSISTENT);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// 注册函数
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;REGISTER_FUNCTION&lt;/span&gt;(MyNamespace, my_function);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// 初始化类
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; zend_class_entry ce;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;INIT_CLASS_ENTRY&lt;/span&gt;(ce, &lt;span style="color:#e6db74"&gt;&amp;#34;MyClass&amp;#34;&lt;/span&gt;, my_class_methods);
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// ...
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; SUCCESS;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;主要任务：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;加载并初始化 PHP 扩展&lt;/li&gt;
&lt;li&gt;注册常量和函数&lt;/li&gt;
&lt;li&gt;注册类接口&lt;/li&gt;
&lt;li&gt;初始化线程安全&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="2-请求初始化阶段-rinit"&gt;2. 请求初始化阶段 (RINIT)
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-c" data-lang="c"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;// 请求开始时调用
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;PHP_RINIT_FUNCTION&lt;/span&gt;(my_extension)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// 重置全局变量
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;MyG&lt;/span&gt;(enabled) &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// 启动 session（如果配置了 auto_start）
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#a6e22e"&gt;php_session_start&lt;/span&gt;();
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; SUCCESS;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;主要任务：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;重置全局变量&lt;/li&gt;
&lt;li&gt;初始化静态变量&lt;/li&gt;
&lt;li&gt;启动 session&lt;/li&gt;
&lt;li&gt;初始化用户级别的计数器&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="3-执行脚本阶段"&gt;3. 执行脚本阶段
&lt;/h3&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;PHP 代码
 │
 ▼
┌─────────────────┐
│ Lexer (词法) │ 将代码转换为 Token
└────────┬────────┘
 │
 ▼
┌─────────────────┐
│ Parser (语法) │ 将 Token 转换为 AST
└────────┬────────┘
 │
 ▼
┌─────────────────┐
│ Compiler (编译) │ 将 AST 转换为 OpArray
└────────┬────────┘
 │
 ▼
┌─────────────────┐
│ Executor (执行) │ 逐条执行 OpCode
└─────────────────┘
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;主要任务：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;词法分析 → 语法分析 → 编译&lt;/li&gt;
&lt;li&gt;生成 OpCode（操作码）&lt;/li&gt;
&lt;li&gt;执行 OpCode&lt;/li&gt;
&lt;li&gt;输出响应内容&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="4-请求关闭阶段-rshutdown"&gt;4. 请求关闭阶段 (RSHUTDOWN)
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-c" data-lang="c"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;// 请求结束时调用
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;PHP_RSHUTDOWN_FUNCTION&lt;/span&gt;(my_extension)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// 刷新输出
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;while&lt;/span&gt; (&lt;span style="color:#a6e22e"&gt;OG&lt;/span&gt;(ob_nesting_level) &lt;span style="color:#f92672"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;) {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; og_level&lt;span style="color:#f92672"&gt;--&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// 清理用户空间对象
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// ...
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; SUCCESS;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;主要任务：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;刷新输出缓冲区&lt;/li&gt;
&lt;li&gt;发送 HTTP 响应&lt;/li&gt;
&lt;li&gt;清理全局变量&lt;/li&gt;
&lt;li&gt;关闭 session&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="5-模块关闭阶段-mshutdown"&gt;5. 模块关闭阶段 (MSHUTDOWN)
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-c" data-lang="c"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;// PHP-FPM 关闭时调用
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;PHP_MSHUTDOWN_FUNCTION&lt;/span&gt;(my_extension)
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// 注销常量和类
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;// 释放持久化资源
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; SUCCESS;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;主要任务：&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;关闭所有扩展&lt;/li&gt;
&lt;li&gt;释放持久化资源&lt;/li&gt;
&lt;li&gt;清理线程安全数据&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="不同的-sapi-模式"&gt;不同的 SAPI 模式
&lt;/h2&gt;&lt;p&gt;PHP 在不同运行环境下，工作模式有所差异：&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th style="text-align: left"&gt;SAPI&lt;/th&gt;
 &lt;th style="text-align: center"&gt;启动次数&lt;/th&gt;
 &lt;th style="text-align: left"&gt;生命周期&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;strong&gt;CLI/CGI&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;每次请求&lt;/td&gt;
 &lt;td style="text-align: left"&gt;完整生命周期&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;strong&gt;PHP-FPM&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;一次启动&lt;/td&gt;
 &lt;td style="text-align: left"&gt;MINIT 一次，请求周期重复&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td style="text-align: left"&gt;&lt;strong&gt;mod_php (Apache)&lt;/strong&gt;&lt;/td&gt;
 &lt;td style="text-align: center"&gt;一次启动&lt;/td&gt;
 &lt;td style="text-align: left"&gt;MINIT 一次，请求周期重复&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id="php-fpm-生命周期"&gt;PHP-FPM 生命周期
&lt;/h3&gt;&lt;pre tabindex="0"&gt;&lt;code&gt;┌─────────────────────────────────────────────────────┐
│ PHP-FPM Master Process │
│ - 监听端口 │
│ - 管理 Worker 进程 │
│ - MINIT 只执行一次 │
└───────────────────────┬─────────────────────────────┘
 │ fork
 ▼
┌─────────────────────────────────────────────────────┐
│ PHP-FPM Worker Process │
│ - 处理请求 │
│ - 重复执行 RINIT → 执行 → RSHUTDOWN │
└─────────────────────────────────────────────────────┘
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="总结"&gt;总结
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;PHP 架构由 SAPI、main、Zend、ext、TSRM 五大模块组成&lt;/li&gt;
&lt;li&gt;PHP 生命周期分为 5 个阶段：模块初始化、请求初始化、脚本执行、请求关闭、模块关闭&lt;/li&gt;
&lt;li&gt;不同 SAPI 模式下，生命周期有所差异（CLI 每次都完整执行，PHP-FPM 只在启动时执行 MINIT）&lt;/li&gt;
&lt;li&gt;理解 PHP 生命周期对于编写高效扩展和排查问题非常重要&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="参考资料"&gt;参考资料
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;《PHP 内核剖析》- 秦朋&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://www.php.net/manual/zh/internals2.php" target="_blank" rel="noopener"
 &gt;PHP 官方文档&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item></channel></rss>