首页 > 编程语言 >php底层代码执行流程

php底层代码执行流程

时间:2023-12-14 10:33:06浏览次数:41  
标签:解析器 初始化 PHP opcode 内存 底层 php 代码执行

PHP 在底层(C 语言层面)的代码执行流程可以大致分为以下几个步骤:

解析器初始化:当 PHP 服务启动时,会调用解析器(Zend Engine)的初始化函数进行初始化,包括各种全局变量的初始化,内存池的初始化。
文件读取和解析:解析器会读取并解析 PHP 文件,将其转换为语法树,并将其中的函数和变量信息保存在符号表中。
编译器生成 opcodes:编译器将语法树转换为 opcode(操作码)序列,这是一种类似于字节码的中间表示形式,可以被解释器执行。
执行 opcodes:解释器会按照 opcode 序列的顺序逐个执行 opcode,其中涉及到内存管理、变量解析、函数调用等过程。
Zend API 处理:Zend API 提供了一些操作符,用于在 C 代码中与 PHP 代码进行交互,比如获取变量值、调用 PHP 函数。
实现扩展:PHP 扩展是一组 C 函数,可以通过链接到 PHP 二进制文件来扩展 PHP 的功能,涉及到底层数据传递、内存管理等技术。
输出:当 PHP 程序需要输出数据(HTML 文档、JSON 数据等)时,PHP 会调用输出(Output)机制,将数据发送给客户端。
清理:当 PHP 程序执行完毕或发生错误时,需要清理内存、回收资源等环境清理工作。

标签:解析器,初始化,PHP,opcode,内存,底层,php,代码执行
From: https://www.cnblogs.com/qcy-blog/p/17900621.html

相关文章

  • PHP连接SQLSERVER及中文乱码问题
    PHP连接SQLSERVER1、PHP5.3及以后版本不再支持mssql模块,应使用SQLSRV或PDO_SQLSRV;2、下载PHP驱动程序。 http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx 内含Windows平台各种版本扩展文件,支持SQL2005及以上版本3、复制所需文件如:php_sqlsrv_73_nts_x64.dll(PHP......
  • apache 项目的php配置文件
    <VirtualHost*:80>[email protected]"/www/wwwroot/api.com"ServerNameapi.comServerAliasapi.com#errorDocument404/404.htmlErrorLog"/www/wwwlogs/api.com-error_log"Cu......
  • PHP高级面试题-1
    1、谈谈你在写sql语句需要注意有哪些点?答:select*问题,客户端需要什么,就给什么,不要给多余的字段,这种情况可能还会导致本来可以走覆盖索引的语句不能走覆盖索引。不要在查询语句字段上做函数运算,这样会让索引失效。一定要避免mysql自动类型转换,比如where‘9’=9。能不设置允许......
  • PHP高级面试题-2
    1、什么事面向对象?主要特征是什么?面向对象是程序的一种设计方式,它利于提高程序的重用性,使程序结构更加清晰。主要特征:封装、继承、多态。2、SESSION与COOKIE的区别是什么,请从协议,产生的原因与作用说明?A、http无状态协议,不能区分用户是否是从同一个网站上来的,同一个用户请求......
  • 车机 Android 调节音量的三种方式及底层代码逻辑
    注意:本文基于Android12/S进行分析Qidi2023.07.20(MarkDown&EnterpriseArchitect&Haroopad)0.车机环境下音量调节的特殊性车机环境下的音频使用场景,相较于原始Android的音频使用场景,存在这些特殊性:使用专门的aDSP芯片进行音效处理;需要播放/控制原始Android......
  • CodeIgniter3.chm 打包编译 需要 hhc.exe - php框架
    电子书地址https://github.com/CodeIgniter-Chinese/rapid-php-application-development我打包编译好了chm,https://files.cnblogs.com/files/pengchenggang/CodeIgniter3.chm.zip?t=1702438484&download=truehhc.exe下载组件HTMLHelpWorkshophhc.exe下载地址:https://ww......
  • php获取详细访客信息,获取访客IP,IP归属地,访问时间,操作系统,浏览器,移动端/PC端,环境语言,访
    问题描述:需要获取访客访问网站信息1.代码示例与说明:<?phpheader("Content-Type:text/html;charset=utf-8");        //代码中涉及字符串处理,为防止汉字乱码需加编码说明functionchinesesubstr($str,$start,$len){          ......
  • PHP 异常与错误 —— Throwable
    Throwable官方文档地址: http://php.net/manual/en/class.throwable.phpPHP支持版本:7Throwable是PHP7中可以用作任何对象抛出声明的基本接口,包括Expection(异常)和Error(错误)。 Throwable{/*抽象方法*/abstractpublicstringgetMessage(void)/......
  • php.ini文件与php.d
    `php.ini`是PHP的主要配置文件,用于全局配置PHP的行为和功能。它包含了许多PHP的核心设置,如内存限制、错误报告级别、扩展加载等。`php.ini`文件通常位于PHP的安装目录下。而`php.d`文件夹中的配置文件是用于对特定的PHP扩展或模块进行个别配置的文件。这些文件是......
  • 2023年的PHP项目部署笔记。什么?还有人用PHP?
    前言这是我第一次用PHP的包管理工具composer一开始用docker进行部署,但一直出问题,最后还是选择直接在服务器上安装php-fpm搭配nginx的方案了。PS:docker方式真的搞得心好累,现在回想起来还心有余悸......