【问题标题】:How to manipulate C++ Vector array into PHP code?如何将 C++ 向量数组操作到 PHP 代码中?
【发布时间】:2014-11-20 11:48:55
【问题描述】:

我在 C++ 中开发了一个实用程序,它有一些类和返回向量数组。我需要通过调用 C++ 函数来操作 Php 中的 C++ Vector 数组。

C++ 代码:

class SampleCode
{
  vector <string> vecarray;
  public:
  void setdata()
  {
     for (int i = 0; i < 100; i++)
     {
          vecarray.push_Back("This is line number "+ (i+1));
     }
  }

  vector <string> getdata()
  {
     return vecarray;
  }
};

PHP 代码:

//这里需要拿到C++数组,需要把结果格式化成表格。

这如何在 PHP 中实现?

【问题讨论】:

  • 如何编写一个 PHP 扩展,将 PHP 与 C++ 实用程序绑定...
  • 你可以在这里发布任何示例或链接到执行相同操作的示例。因为我是 PHP 新手,所以我很难做到。
  • 我以前从未用 C++ 编写过 PHP 扩展,但我认为我说 php-cpp 足够强大而且相当简单(从我在文档中看到的)是对的)。您真正需要知道的是zval 如何存储字符串(使用Z_STRVAL 宏获取char *,然后将其转换为std::string,并将其推送到向量上。可以做同样的事情从向量创建 zval:创建一个哈希表 (== array()),并将每个 std::string 转换为 zval
  • 我发现 PHP-CPP 只会将 PHP 数组转换为 C++ 数组,反之则不然。所以请帮助我以其他方式进行类型转换。
  • std::string 转换为char * 与普通C++ 相同,要从char * 获取zval 字符串,有宏。这一切都在 Zend 引擎的黑客指南中,found here

标签: php c++ arrays vector


【解决方案1】:

您可以使用Swig 在 PHP 中使用 C++ 操作您的对象/函数。 我从未尝试使用 PHP 作为退出语言,但它在列表中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-01
    • 2011-12-06
    • 1970-01-01
    • 2011-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多