C++ 开发 PHP 7 扩展之定义常量
2017-10-12 00:00
387 查看
大家如果经常阅读
比如
那么我们必须也在我们
回到我们上节介绍的定义项目入口代码:
咱们定义如下几个常量:(不要太纠结实际意义,哈哈,本身我们的这个扩展都是臆想出来的)
HELLO_ZAPI_VERSION (int)
HELLO_ZAPI_NAME (string)
HELLO_DEBUG_MODE (bool)
HELLO_ZAPI_PI (double)
zapi::lang::Constant API 手册参考
现在大家学习完背景知识,让我们撸起袖子写代码吧。
C++ Code
如果您对
std::move 用户手册
怎么样,就这么几行,咱们的预定义常量就算定义好了,现在当执行我们
PHP Code
好了,到这里我们就把预定义常量就讲完了,我没有骗您吧,真的很简单,稍作调整让我们继续前进!
原文链接: C++ 开发 PHP 7 扩展之定义常量
PHP官方手册的话会发现,在扩展那一章里面的每个扩展的介绍的时候,都有一节是
Predefined Constants预定义常量,这些常量是不需要您在
PHP里面进行定义就可以使用的。
比如
Mysqli扩展的 Predefined Constants http://php.net/manual/en/mysqli.constants.php
那么我们必须也在我们
hellozapi扩展中也定义几个常量玩玩啊,其实真的很简单,不信?那咱们走着看。
回到我们上节介绍的定义项目入口代码:
#include "zapi/ZendApi.h" extern "C" { ZAPI_DECL_EXPORT void *get_module() { static zapi::lang::Extension hellozapi("hellozapi", "1.0"); return hellozapi; } }
咱们定义如下几个常量:(不要太纠结实际意义,哈哈,本身我们的这个扩展都是臆想出来的)
HELLO_ZAPI_VERSION (int)
HELLO_ZAPI_NAME (string)
HELLO_DEBUG_MODE (bool)
HELLO_ZAPI_PI (double)
zendAPI 常量描述类简单介绍
在zendAPI里面我们使用
zapi::lang::Constant来描述一个常量的元信息,使用起来很简单,他的构造函数接受两个参数,第一个参数是常量名称,第二个参数是常量的值。例如我们使用下面代码去定义一个
ROOT_DIR常量, 常量值是
/srv/www。
using zapi::lang::Constant; Constant dirConst("ROOT_DIR", "/srv/www");
zapi::lang::Constant API 手册参考
现在大家学习完背景知识,让我们撸起袖子写代码吧。
C++ Code
#include "zapi/ZendApi.h" using zapi::lang::Constant; extern "C" { ZAPI_DECL_EXPORT void *get_module() { static zapi::lang::Extension hellozapi("hellozapi", "1.0"); Constant hellozapiVersionConst("HELLO_ZAPI_VERSION", 0x010002); Constant hellozapiNameConst("HELLO_ZAPI_NAME", "Hello zendAPI!"); Constant helloDebugModeConst("HELLO_DEBUG_MODE", true); Constant helloPiConst("HELLO_ZAPI_PI", 3.14); hellozapi.registerConstant(std::move(hellozapiVersionConst)); hellozapi.registerConstant(std::move(hellozapiNameConst)); hellozapi.registerConstant(std::move(helloDebugModeConst)); hellozapi.registerConstant(std::move(helloPiConst)); return hellozapi; } }
如果您对
std::move感到陌生,您可以阅读 cpp reference 手册
std::move 用户手册
怎么样,就这么几行,咱们的预定义常量就算定义好了,现在当执行我们
PHP脚本的时候就可以直接使用了。
PHP Code
if (defined("HELLO_ZAPI_VERSION")) { echo HELLO_ZAPI_VERSION; } echo "\n"; if (defined("HELLO_ZAPI_NAME")) { echo HELLO_ZAPI_NAME; } echo "\n"; if (defined("HELLO_DEBUG_MODE")) { if (HELLO_DEBUG_MODE) { echo "true"; } else { echo "false"; } } echo "\n"; if (defined("HELLO_ZAPI_PI")) { echo HELLO_ZAPI_PI; } // you will get // 65538 // Hello zendAPI! // true // 3.14
好了,到这里我们就把预定义常量就讲完了,我没有骗您吧,真的很简单,稍作调整让我们继续前进!
原文链接: C++ 开发 PHP 7 扩展之定义常量
相关文章推荐
- C++ 开发 PHP 7 扩展之模块入口定义
- PHP扩展开发(5) - PHP常量的定义和读取
- php扩展开发笔记(3)类的静态数组属性定义
- Linux下用C++开发PHP扩展
- 在 windows 下 用C++ 开发 PHP 扩展
- PHP扩展开发-06-变量的定义和使用
- PHP Extension组件开发完整实例(C/C++扩展PHP)
- 总结一下php5.2.16与apache2.0的C++扩展开发整个过程
- php扩展开发---设置常量
- 用 C or C++ 开发PHP扩展模块
- Android程序员学PHP开发(8)-常量预定义常量运算符号-PhpStorm
- 用 C or C++ 开发PHP扩展模块
- Ubuntu下C++开发PHP开发扩展的注意事项
- Linux下用C++开发PHP扩展
- Windows下php扩展开发c++动态库
- Ubuntu下C++开发PHP开发扩展的注意事项
- 在 windows 下 用C++ 开发 PHP 扩展
- PHP7扩展开发之常量定义
- 利用C++开发PHP扩展
- Windows下php扩展库C++开发