php是编译型语言还是解释性语言
php是解释型语言。php是一种简单的、面向对象的、解释型的、健壮的、安全的、性能非常之高的、独立于架构的、可移植的、动态的脚本语言;PHP解释器会将PHP代码解释为opcode之后再交由Zend引擎执行。
本教程操作环境:windows7系统、PHP7.1版、DELL G3电脑
php是解释型语言。每个平台都有对应的php解释器版本,指针对不同平台均编译出目标平台的二进制码;php解释器会将PHP代码解释为opcode之后再交由Zend引擎执行。
php(Hypertext Preprocessor ),即超文本预处理器;
是一种服务器端的 HTML 脚本语言,是一种简单的、面向对象的、解释型的、健壮的、安全的、性能非常之高的、独立于架构的、可移植的、动态的脚本语言。是一种广泛用于 Open Source(开放源代码)的尤其适合 Web 开发并可以嵌入 HTML 的多用途脚本语言。它的语法接近 C,而且容易学习。
php是编译型语言,还是解析型语言?
翻译:将高级语言翻译成计算机可识别的机器语言,这就叫做翻译。翻译方式:编译、解释;
编译:编译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成机器语言的文件,比如:.exe文件,只需一次编译即可;
解释:解释型语言不需要编译,只有在程序运行时才会进行翻译,比如php语言,需要有一个专门的解释器fastcgi直接执行代码,每一个语句都是直接执行的时候才会翻译;这样的解释型语言每执行一次就要翻译一次;
以下是其他语言的代码执行过程:
java:代码---->通过编译器,翻译成java bytecode(字节码)---->运行时,通过解释器翻译成 机器码
c#:代码---->编译成微软中间码---->经由clr翻译成机器码
php(4.0版本):代码---->翻译成op code中间码---->执行阶段用 Zend 虚拟机执行 Opcode,编译成机器码
事实上,绝大部分的程序语言从源文件到可执行代码的转换过程当中,都是源代码——中间代码——最终代码(机器码)的形式。而编译型和解释型的不同就在于这个过程对于一份相同的源文件在最少情况下是只需一次执行还是可能多次执行的。对于java,正如它的口号“一次编译,到处执行”那样,源文件一次性被编译成中间代码(class文件),之后在不同机器上的转换为机器码的过程由JVM自动完成,已经不用程序员操心了。而php在一般情况下这个转换过程是会在每次访问的时候都会执行的。apc也只是“缓存”了中间代码,要注意“缓存”二字,表明它对于一份源文件仍有可能由于时间的推移而多次生成(缓存过期)。
APC : atternative php cache,是一个php opcode缓存,目标在于提供一个*开放健全的框架,用于缓存和优化php的中间代码;若安装了apc,则编译可以省略,不需要编译成op code,直接获取缓存,在解释成机器码。
推荐学习:《PHP视频教程》
以上就是php是编译型语言还是解释性语言的详细内容,更多请关注其它相关文章!
推荐阅读
-
php是编译型语言还是解释性语言
-
yii2 - 请问顺丰速运这样的物流网站是用什么语言写的?是php还是java?
-
目前,网页脚本语言三个主流:PHP,JSP,.NET。究竟是一种怎么样的形势?是三国鼎立,还是其他的形势呢?各自的真正优势,又是在哪里?
-
目前,网页脚本语言三个主流:PHP,JSP,.NET。究竟是一种怎么样的形势?是三国鼎立,还是其他的形势呢?各自的真正优势,又是在哪里?
-
为什么facebook的hiphop要把php转换成了C++而不是把php改成编译型的语言,直接执行编译后的文件不是更快么?
-
为什么php中的*会匹配到null,是php的bug吗,还是其它语言也会这样?
-
php多语言设置,是把多语言存入数据库好,还是直接保存为一个数组文件好?
-
java为什么是半编译半解释型语言
-
用C语言判断一个机器字节序列的存储模式是大端还是小端存储以及浮点型在内存中的存储
-
yii2 - 请问顺丰速运这样的物流网站是用什么语言写的?是php还是java?