php-cpp C++开发扩展
最后更新于:2022-04-02 02:32:53
[TOC]
> [php-cpp home](http://www.php-cpp.com/documentation/loading-extensions)
## 概述
### 特性
* 很快
用C++编写的代码很快:比用PHP编写的代码快得多。
* 简单
用C++编写的算法看起来几乎与用PHP编写的算法相同。
* 无需Zend引擎知识
* 完善的文档
* 支持所有重要的PHP功能
使用PHP-CPP,你可以像使用普通的PHP脚本一样轻松地处理变量、数组、函数、对象、类、接口、异常和命名空间。除此之外,你还可以使用C++的所有功能,包括线程,lambdas和异步编程。
* 免费的
### 支持php 低版本
[php-cpp-legacy](https://github.com/CopernicaMarketingSoftware/PHP-CPP-LEGACY) 支持php5.6 旧版本
[php-cpp](https://github.com/CopernicaMarketingSoftware/PHP-CPP) 仅支持php7
HP-CPP和PHP-CPP-LEGACY库具有(几乎)相同的API,因此您可以轻松地将PHP 5.*的扩展移植到PHP 7,反之亦然
## hello word
```
// 声明无参函数
Php::Value hello_world()
{
return "hello world!";
}
// 添加到扩展
extension.add("hello_world", hello_world);
```
```
// 声明有参函数
Php::Value my_plus(Php::Parameters ¶ms)
{
return params[0] + params[1];
}
// 添加到扩展
extension.add("my_plus", my_plus, {
Php::ByVal("a", Php::numericType),
Php::ByVal("b", Php::numericType)
});
```
```
Php::Value get_complex_array()
{
Php::Value r;
r["a"] = 123;
r["b"] = 456;
r["c"][0] = "nested value";
r["c"][1] = "example";
return r;
}
function get_complex_array()
{
return array(
"a" => 123,
"b" => 456,
"c" => array("nested_value","example")
);
}
```
## 技巧
';