本教程操作环境: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,直接获取缓存,在解释成机器码。