PHP内核探索之解释器的执行过程,_PHP教程
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP内核探索之解释器的执行过程,_PHP教程,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1826字,纯文字阅读大概需要3分钟。
内容图文
![PHP内核探索之解释器的执行过程,_PHP教程](/upload/InfoBanner/zyjiaocheng/190/107d228e699648f9a188423ec36dda3d.jpg)
PHP内核探索之解释器的执行过程,
cli(Command Line Interface)即PHP的命令行模式,现在此SAPI是默认安装的,我们在服务器上安装完PHP之后,一般会生成一个可执行文件,假设此文件为/usr/local/bin/php ,那么我们在SHELL下可以用以下命令来执行一个PHP脚本:
代码如下:
/usr/local/bin/php -f test.php
以CLI SAPI为例来对php执行核心部分进行解析。CLI是php命令行模式,此SAPI是默认安装的,在服务器端安装过PHP后,生成以一个可执行文件,可以在shell中调用PHP命令来执行。
代码如下:
PHP -f XX.php
执行流程:
解析命令行参数;
初始化环境;
编译执行PHP代码;
清理环境,退出;
在第3个阶段中,如何执行PHP脚本的:
通过调用php_execute_script( handle_file )来完成第三阶段,该函数最终会调用zend_execute_scipts( … ) ,这个函数是一个可变参函数,可以一次执行多个PHP脚本。
在zend_execut_scripts(…..)函数中核心调用了(zend_compile_file)( compile_file ), (*zend_execute)( zend_op_array )这两个函数;
通过调用zend_compile_file编译参数指定的php脚本文件,该函数会返回一个zend_op_array的结构指针;
zend_execute传入的参数是zend_compile_file的返回值,就开始执行opcode了。
这两个函数是Zend API,是一个函数指针,在引擎初始化的时候回赋值具体的方法。
ps.:那为什么这两个Zend API是函数指针呢?
在引擎初始化的时候,zend_execute和zend_compile_file会在引擎初始化的时候指向默认的方法。我们可以在编译和执行重写函数的指向,这样就为我们扩展引擎时留下了钩子。例如:vld将zend_execute和zend_compile_file指向自己对原始函数封装后的函数,添加了opcode信息的输出。
您可能感兴趣的文章:
- php设计模式 Interpreter(解释器模式)
- PHP设计模式之解释器模式的深入解析
- PHP内核探索:变量存储与类型使用说明
- PHP内核探索:变量概述
- PHP内核探索:哈希表碰撞攻击原理
- PHP内核探索之变量
http://www.bkjia.com/PHPjc/1084570.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1084570.htmlTechArticlePHP内核探索之解释器的执行过程, cli(Command Line Interface)即PHP的命令行模式,现在此SAPI是默认安装的,我们在服务器上安装完PHP之后,一...
内容总结
以上是互联网集市为您收集整理的PHP内核探索之解释器的执行过程,_PHP教程全部内容,希望文章能够帮你解决PHP内核探索之解释器的执行过程,_PHP教程所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。