PHP源码编写与Zend 编译要注意的小问题 求解决方法(大家畅谈)
Zend 与PHP编写之间的问题。
在使用了Zend后发现执行 Zend编译后的程序,运行结果可能与执行没编译过的PHP代码是不一样的。主要有以下几个问题。
1. 单元文件之间的循环引用。
这个问题很麻烦。情况如下:
现在有 a.php,b.php,c.php三个文件。c.php定义了一个函数,(如:fun1);a.php为主文件。a.php同时引用了b.php与c.php,b.php又引用了c.php.
都编译后执行a.php 这时就会出现错误,说:函数 fun1 已被定义(重复定义)。但在执行PHP源码是不会有什么问题的。
2. 使用 __FILE__ 之类常量的PHP文件编译后执行可能会有错误的结果。
因为 __FILE__ 为常量,而在编译时常量被当时的值替换了。
echo(dirname(__FILE__)); 当时文件是在 c:/interpub/wwwroot/a.php
源码执行得到的当时的目录。放地位置不同,得到的值也不同。
而编译后不管放哪里都是 c:/interpub/wwwroot 了。因为 __FILE__ 已经被 c:/interpub/wwwroot/a.php 替换了。