【问题标题】:Is it possible to add new functions to PHP?是否可以向 PHP 添加新功能?
【发布时间】:2012-01-19 14:11:23
【问题描述】:

我想向 PHP 添加一个函数,这样我就可以在我的服务器上运行的任何脚本中使用它。是否可以注册一个函数,就像它是 PHP 原生的一样? PHP 是否有某种配置文件,我可以在其中注册新的全局/本地函数?

无意在生产中使用它,我只是好奇如何实现这一点。

【问题讨论】:

  • @ajreal:你想告诉我们什么?
  • @ajreal: 把 PHP 变成 C++ 和这个有什么关系?
  • 编写你的php代码并使用hiphop编译成原生php函数
  • @ajreal:这不是 HipHop 所做的……它所做的只是将现有的 PHP 代码转换为可以在 PHP 解释器之外编译和运行的 C++ 代码。它不会将 PHP 代码转换为原生 PHP 扩展。

标签: php function configuration-files


【解决方案1】:

您可以使用“全局包含”(在 php.ini 中定义)

阅读此(php.net 手册)

auto-append-fileauto-prepend-file

【讨论】:

  • 这正是我要找的,答案已接受(看来你的答案是第一个;)
【解决方案2】:

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

auto_prepend_file = /path/to/file.php

http://php.net/manual/en/ini.core.php

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

【讨论】:

    【解决方案3】:

    您可以编写extensions in C or C++,尤其是编写或使用带有SWIG or FFI 的库绑定。但这有点费力,而且只有在您指的是编译的“本机”函数时才可取。

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

    【讨论】:

      【解决方案4】:

      手册http://www.php.net/manual/en/internals2.php有一整章专门用于编写php扩展,并附有示例。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-08-03
        • 2021-12-07
        • 2022-09-25
        • 1970-01-01
        • 1970-01-01
        • 2020-06-11
        • 1970-01-01
        相关资源
        最近更新 更多