面议元2023-02-25 12:02:19
很多著名的网站,像百度、新浪等等都是使用PHP开发的。近年来PHP比较流行,想学习PHP的同学也比较多。其实,PHP也并不完全像有些人想你的那样简单得如同一杯白水。
有人就认为,PHP对程序员的要求更高。
首先, 大家都知道, PHP也是一种编译型脚本语言, 和其他的预编译型语言不同, 它不是编译成中间代码, 然后发布.. 而是每次运行都需要编译..为此, 也就有了一些Opcode Cache, 比如开源的 还有商业的Zend O+等. 那么为什么PHP不把编译执行分开呢 PHP虽然是一种编译型脚本语言, 但是它的编译速度非常快, 它的编译不做任何语义优化, 就是简单的忠实的把你所写的代码翻译成对应的
而其他语言因为在编译器做很多的优化工作, 会造成编译比较重, 也一定程度上要求它们分离.所以, 理论上来说, 通过编译执行分离, 想达到源码加密, 是不会有什么太大收效的, 因为它很容易被反向.另外, 编译直接分离, 并不会带来特别大的收益, 反而会降低调试部署的效率(想想, 修改, 编译, 发布, 看效果), 并且APC等Opcode Cache工具, 已经很成熟了..到这里, 请大家注意这句”它的编译不做任何语义优化”.这也就是我为什么说, PHP对程序员的要求更高, 不同于其他的编译型语言, PHP在编译的时候不会帮你做一些优化, 比如对于如下的代码
3.
如果是其他预编译语言, 它的编译器也许会帮你做优化, 把strlen提取到前面去, 只做一次就够了. 而对于PHP来说, 它在编译的时候不做任何优化, 也就是说, 你的 会忠实的被调用8次.
再比如1. table table2.while( isql select from . table . where id . i4.没错, “select from ” . table会被concat 1000次..
可见, PHP的程序员, 需要认真的想好, 你的代码会怎么被执行, 你怎么写代码, 终的执行效率才高. 而不像其他的语言, 程序员可以把一部分优化工作交给编译器.
这也就是我为什么说”PHP对程序员的要求更高”的原因. 当然, 这个是好是坏, 那就是见仁见智了。(作者:雪候鸟来源 风雪之隅。) PHP是一种简单的面向对象的解释型、健壮、安全、性能高,并且是独立于架构的、可移植的动态脚本语言。而且相比java速度要快5倍。