Fer*_*yer 14
PHP是模块化设计 - 它由"引擎"和许多扩展组成,其中一些是必不可少的(例如"标准"扩展),有些是可选的.它们可以动态编译或加载(通过php.ini设置或dl()函数).
如果您愿意学习API,可以使用C/C++轻松编写自己的PHP扩展.从有关如何"破解Zend引擎"的文档开始.
RBe*_*eig 12
您可能需要查看SWIG,这是一个包装库的通用工具,以便可以从各种语言调用它们.SWIG支持PHP,Perl和Lua(我个人使用的目标)也是如此.引自SWIG网站的功能列表:
SWIG目前为18种不同的目标语言生成包装代码:
- Allegro CL
- C#
- CFFI
- CLISP
- 鸡
- 诡计
- Java的
- LUA
- Modula-3语言
- 的MzScheme
- OCAML
- 八度
- Perl的
- PHP
- 蟒蛇
- [R
- 红宝石
- TCL
- UFFI
除此之外,解析树可以导出为XML和Lisp s表达式.Pike模块也可以进行实验工作.
它的一些功能依赖于每种语言包装器生成器中的后端支持,但通常它提供了易于使用的包装器,用于将所有普通数据值类型传入和传出函数.在目标语言具有概念的情况下,它通常也可以映射对象模型.
您可以使用system()函数在PHP中使用C++编译的代码,并通过操作系统调用您的程序(就像在命令行上一样).