PHP对程序员的要求更高
程序员文章站
2023-12-26 13:15:09
...
今天是愚人节, 但我这个文章标题可不是和大家开玩笑. 首先, 大家都知道, PHP 也是一种编译型脚本语言, 和其他的预编译型语言不同, 它不是编译成中间代码, 然后发布.. 而是每次运行都需要编译.. 为此, 也就有了一些 Opcode Cacche, 比如开源的 APC, ea
今天是愚人节, 但我这个文章标题可不是和大家开玩笑.
首先, 大家都知道, PHP 也是一种编译型脚本语言, 和其他的预编译型语言不同, 它不是编译成中间代码, 然后发布.. 而是每次运行都需要编译..
为此, 也就有了一些 Opcode Cacche, 比如开源的 APC, eacc. 还有商业的 Zend O+ 等.
那么为什么 PHP 不把编译/执行分开呢?
PHP 虽然是一种编译型脚本语言, 但是它的编译速度非常快, 它的编译不做任何优化, 就是简单的忠实的把你所写的代码翻译成对应的 Opcodes. 而其他语言因为在编译器做很多的优化工作, 会造成编译比较重, 也一定程度上要求它们分离.
所以, 理论上来说, 通过编译执行分离, 想达到源码加密, 是不会有什么太大收效的, 因为它很容易被反向。
另外, 编译直接分离, 并不会带来特别大的收益, 反而会降低调试部署的效率(想想, 修改, 编译, 发布, 看效果), 并且 APC 等优化工具, 已经很成熟了..
到这里, 请大家注意这句:”它的编译不做任何优化”….
这也就是我为什么说, PHP 对程序员的要求更高, 不同于其他的编译型语言, PHP 在编译的时候不会帮你做一些优化, 比如对于如下的代码:
for ($i=0;$istrlen