PHP里,函数可以在使用之后定义,
我觉得定义在后面,肯定要降低脚本解析的速度。
当然,如果PHP的解析器如果是多次扫描,先扫一遍函数,那么,之前之后定义就无所谓了,效率无损失。不知道PHP是怎么解析的,请教各位的看法。

解决方案 »

  1.   

    PHP里,函数可以在使用之后定义,
    我觉得定义在后面,肯定要降低脚本解析的速度。这个理解其实不对,你想想看,如果都写在前面,那么脚本引擎需要先全部扫描这些函数,同样也会很慢的,建议模块化你的函数,文件包含即可
      

  2.   

    @skyaspnet这要看php是怎么做的了,如果是边解析边执行,那么在执行过程中碰到了未定义函数,自然就要停止执行,去从后面找解析,如果是和java一样,先全部转成二进制代码,再执行,那么其解析过程,函数在前在后,无所谓,因为反正都是要全扫描完,编译完再执行。
      

  3.   

    wtller 说得对,实际情况就是后者。像 APC、XCache 这些缓存引擎都能对 opcode 进行缓存,也说明了这一点。
    ————————————————————————————————
    基于CSDN论坛提供的插件扩展功能,自己做了个签名档工具,分享给大家,欢迎技术交流 :)
      

  4.   

    虽然 PHP 语言习惯上被称为“脚本语言”,但从编译、加载、运行的机制上看,它跟 Java 更近一些,而跟 JavaScript 之类的“脚本语言”更远一些。说到底,PHP 是“编译执行”,而不是“解释执行”。如果一个 PHP 文件中有语法错误,它不会执行到那里才报错,而是在加载(编译)的时候就报错。
    ————————————————————————————————
    基于CSDN论坛提供的插件扩展功能,自己做了个签名档工具,分享给大家,欢迎技术交流 :)
      

  5.   

    建议看看用 
    PHP 开发健壮的代码: 编写可重用函数
    http://www.ibm.com/developerworks/cn/linux/sdk/php/wa-phprock3/index.html