国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

C++開發PHP 7擴展之定義常量

2024-05-04 21:50:01
字體:
來源:轉載
供稿:網友

大家如果經常閱讀 PHP 官方手冊的話會發現,在擴展那一章里面的每個擴展的介紹的時候,都有一節是 Predefined Constants 預定義常量,這些常量是不需要您在 PHP 里面進行定義就可以使用的。

比如 Mysqli 擴展的 Predefined Constants http://php.net/manual/en/mysqli.constants.php

那么我們必須也在我們 hellozapi 擴展中也定義幾個常量玩玩啊,其實真的很簡單,不信?那咱們走著看。

回到我們上節介紹的定義項目入口代碼:

 
  1. #include "zapi/ZendApi.h" 
  2.  
  3. extern "C" { 
  4.  
  5. ZAPI_DECL_EXPORT void *get_module()  
  6.    static zapi::lang::Extension hellozapi("hellozapi""1.0"); 
  7.    return hellozapi; 
  8.  

咱們定義如下幾個常量:(不要太糾結實際意義,哈哈,本身我們的這個擴展都是臆想出來的).

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 手冊參考

現在大家學習完背景知識,讓我們擼起袖子寫代碼吧。

  1. C++ Code 
  2. #include "zapi/ZendApi.h" 
  3.  
  4. ?using zapi::lang::Constant; 
  5.  
  6. extern "C" { 
  7.  
  8. ZAPI_DECL_EXPORT void *get_module()  
  9.    static zapi::lang::Extension hellozapi("hellozapi""1.0"); 
  10.    ?Constant hellozapiVersionConst("HELLO_ZAPI_VERSION", 0x010002); 
  11.    Constant hellozapiNameConst("HELLO_ZAPI_NAME""Hello zendAPI!"); 
  12.    Constant helloDebugModeConst("HELLO_DEBUG_MODE", true); 
  13.    Constant helloPiConst("HELLO_ZAPI_PI", 3.14); 
  14.    hellozapi.registerConstant(std::move(hellozapiVersionConst)); 
  15.    hellozapi.registerConstant(std::move(hellozapiNameConst)); 
  16.    hellozapi.registerConstant(std::move(helloDebugModeConst)); 
  17.    hellozapi.registerConstant(std::move(helloPiConst)); 
  18.    return hellozapi; 
  19.  

如果您對 std::move 感到陌生,您可以閱讀 cpp reference 手冊

std::move 用戶手冊

怎么樣,就這么幾行,咱們的預定義常量就算定義好了,現在當執行我們 PHP 腳本的時候就可以直接使用了。

  1. if (defined("HELLO_ZAPI_VERSION")) { 
  2.     echo HELLO_ZAPI_VERSION; 
  3. echo "/n"
  4. if (defined("HELLO_ZAPI_NAME")) { 
  5.     echo HELLO_ZAPI_NAME; 
  6. echo "/n"
  7. if (defined("HELLO_DEBUG_MODE")) { 
  8.     if (HELLO_DEBUG_MODE) { 
  9.         echo "true"
  10.     } else { 
  11.         echo "false"
  12.     } 
  13. echo "/n"
  14. if (defined("HELLO_ZAPI_PI")) { 
  15.     echo HELLO_ZAPI_PI; 
  16. // you will get 
  17. // ?65538 
  18. // Hello zendAPI! 
  19. // true 
  20. // 3.14 

好了,到這里我們就把預定義常量就講完了,我沒有騙您吧,真的很簡單,稍作調整讓我們繼續前進.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 上犹县| 龙口市| 蒙城县| 鹤庆县| 承德县| 裕民县| 新和县| 九龙城区| 政和县| 公安县| 绥中县| 凯里市| 大理市| 从化市| 昆山市| 朝阳市| 高碑店市| 大城县| 甘孜县| 搜索| 温泉县| 晋宁县| 淮南市| 类乌齐县| 秦皇岛市| 大石桥市| 盐池县| 太康县| 比如县| 龙胜| 饶阳县| 边坝县| 台南县| 长沙市| 海丰县| 贵德县| 青阳县| 饶平县| 五原县| 普宁市| 昆山市|