php - 如何从 PHP 调用 C++ ".so"

标签 php c++

我使用 C++ 创建了一个示例“.so”文件,它采用两个输入作为参数并返回一个整数,如下所示。

int calc ( int a , int b ) {

return ( a + b );

}

我需要在 PHP 中调用这个“calc”方法并显示它。我搜索并发现“Zend Engine”可以提供帮助,但我可以获得任何简单的示例来尝试。 Zend 引擎是执行此操作的唯一方法,还是有其他方法从 PHP 调用 C++“.so”。

更新:

我在这个案例中使用了 PHP-CPP。

我关注了这个tutorial ,我创建了一个“.so”,我可以从命令行从测试 php 文件调用“.so”中的函数。但我将相同的 testSkeleton.hph”文件复制到“/var/www”文件夹并从浏览器运行,在这种情况下,它不会从“.so”文件调用该函数。

最佳答案

您将编写一个 PHP 扩展,它直接实现您的函数或包装对其他 C/C++ 库的调用。

有关“如何开始编写 PHP 扩展”的一些提示:

--

注意:基本计算功能已经实现:)

还有更高级的数学内容:http://www.php.net/manual/en/book.math.php

<?php
function add($a, $b)
{
    return $a + $b;
}
echo add(5, 10);
?>

关于php - 如何从 PHP 调用 C++ ".so",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24267042/

相关文章:

php - php 如何下载不存在的文件

php - SQL主键重新排序的简明方法

C++ 和 Lua - 尝试索引 nil 值错误

php - 如何防止在不同的 apache 虚拟主机之间共享 PHP session ?

php - 使用 PHP 上下移动记录

c++ - libboost_*.so : file not recognized: File truncated When dynamically linking using libtool and automake to generate makefile

c++ - 我应该为 C 函数 noexcept 声明包装器吗?

c++ - dll注入(inject): drawing simple game overlay with opengl

c++ - 在 Visual Studio 中执行 C 程序时,表达式必须具有指向对象类型 ERROR 的指针

javascript - $ ('#notificationClick' ).click 不起作用