php - 我可以将 PHP 扩展类、函数等放在命名空间中吗?

标签 php c php-extension

我正在用 C 编写 PHP 扩展,我想将我正在创建的类、函数和变量放在命名空间中。我无法在扩展文档中找到有关命名空间的任何内容。明确地说,我想要相当于

namespace MyNamespace{
  class MyClass{
  }
}

但在 C 扩展中。更具体地说,我正在寻找 Zend C API 中的函数或宏,它允许我将 PHP 命名空间分配给我用 C 编写的类或函数。这可能吗?

最佳答案

将类放入命名空间非常简单。通常你会用

初始化一个类
zend_class_entry ce;
INIT_CLASS_ENTRY(ce, "MyClass", my_class_methods);

将第二行写成

INIT_CLASS_ENTRY(ce, "MyNamespace\\MyClass", my_class_methods);

命名空间不需要包含在方法声明中或 my_class_methods 数组的成员中,以便将它们与类正确匹配。

关于php - 我可以将 PHP 扩展类、函数等放在命名空间中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24687502/

相关文章:

c++ - 我如何开始网络编程?

php - 使用 PHP 从 JSON 中获取值

php - 如何确保为我的动态内容生成唯一的 JavaScript 推文按钮

php - 具有复合主键的 Laravel 种子表

c - 如何在不包含 C 头文件的情况下使用头文件中的函数?

c - 什么是最好的,单线程或多线程服务器?

php - 需要创建一个 PHP 循环(多次失败后不知道如何继续)

php - 我应该将 php/mysql 模块存储在数据库还是文件中?

c++ - PHP-CPP 新扩展适用于 cli 'php' 命令,但不适用于浏览器

php - 如何加载同一个php扩展的两个版本?