是否可以在PHP中添加新函数?


Is it possible to add new functions to PHP?

我想添加一个函数到PHP,所以我可以使用它在我的服务器上运行的任何脚本。是否有可能注册一个函数,如果它是本地从PHP?PHP是否有某种配置文件,我可以在其中注册新的全局/本机函数?

没有打算在生产中使用它,我只是好奇如何实现它。

你可以使用"Global include"(在php.ini中定义)

阅读这个(php.net手册)

auto- appendfile和auto- prependfile

您可以用C或c++编写扩展,特别是使用SWIG或FFI编写或使用库绑定。但这有点费力,只有当您指的是编译的"本机"函数时才建议这样做。

通过配置向PHP添加新的核心函数的惰性选项是auto_prepend_file= php.ini设置。这允许注册一个脚本,该脚本在其他所有脚本之前执行。(我用它来修复一些服务器上的魔法引号,或者总是有phpquery可用于CLI测试。)

在手册http://www.php.net/manual/en/internals2.php中有整整一章专门介绍如何编写php扩展,并附有示例。

最简单的方法是用PHP编写它们,并在脚本执行前使用

包含它们
auto_prepend_file = /path/to/file.php
http://php.net/manual/en/ini.core.php

否则你需要学习C并编写扩展