是否可以使用 php 中的C++二进制文件

php
2022-08-30 19:49:31

是否可以编写一些C或C++代码并编译为二进制文件,然后将这些二进制文件与php一起使用?是否也可以使用C和C++编写php库?

如果是这样,请告诉我该怎么做?


答案 1

PHP在设计上是模块化的 - 它由“引擎”和许多扩展组成,其中一些是必不可少的(例如“标准”扩展),一些是可选的。它们可以动态编译或加载(通过php.ini设置或函数)。dl()

如果你愿意学习API,你可以轻松地用C/C++编写自己的PHP扩展。从有关如何“破解Zend引擎”的文档开始。


答案 2

您可能希望查看 SWIG,这是一种用于包装库的通用工具,以便可以从多种语言调用它们。PHP由SWIG支持,Perl和Lua(我个人使用的目标)也是如此。引用SWIG网站上的功能列表:

SWIG目前为18种不同的目标语言生成包装代码:

  • 快板 CL
  • C#
  • 中频调速器
  • 断续器
  • 诡计
  • 爪哇岛
  • 路亚
  • 莫杜拉-3
  • Mzscheme
  • 断续器
  • 八度
  • 佩尔
  • 菲律宾比索
  • R
  • 红宝石
  • 断续器
  • 乌菲

除此之外,解析树可以导出为XML和Lisp s表达式。Pike模块也可用于实验工作。

它的一些功能依赖于每语言包装生成器中的后端支持,但通常它提供了易于使用的包装器,用于将所有纯数据值类型传入和传出函数。如果目标语言具有概念,它通常也可以映射对象模型。


推荐