C 開發 PHP 7 擴充套件之原生常量定義

2021-09-14 08:51:50 字數 1712 閱讀 3182

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

比如mysqli擴充套件的 predefined constants

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

回到我們上節介紹的定義專案入口**:

#include "zapi/zendapi.h"

extern "c"

}

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

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"

}

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

std::move 使用者手冊

怎麼樣,就這麼幾行,咱們的預定義常量就算定義好了,現在當執行我們php指令碼的時候就可以直接使用了。

php code

if (defined("hello_zapi_version")) 

echo "\n";

if (defined("hello_zapi_name"))

echo "\n";

if (defined("hello_debug_mode")) else

}echo "\n";

if (defined("hello_zapi_pi"))

// you will get

// 65538

// hello zendapi!

// true

// 3.14

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

原文閱讀:聽說每個擴充套件都會定義自己常量,不要擔心我們也行

C 開發 PHP 7 擴充套件之原生常量定義

大家如果經常閱讀php官方手冊的話會發現,在擴充套件那一章裡面的每個擴充套件的介紹的時候,都有一節是predefined constants預定義常量,這些常量是不需要您在php裡面進行定義就可以使用的。比如mysqli擴充套件的 predefined constants php.net manua...

C 開發 PHP 7 擴充套件之原生常量定義

大家如果經常閱讀php官方手冊的話會發現,在擴充套件那一章裡面的每個擴充套件的介紹的時候,都有一節是predefined constants預定義常量,這些常量是不需要您在php裡面進行定義就可以使用的。比如mysqli擴充套件的 predefined constants php.net manua...

C 開發 PHP 7 擴充套件之定義常量

大家如果經常閱讀php官方手冊的話會發現,在擴充套件那一章裡面的每個擴充套件的介紹的時候,都有一節是predefined constants預定義常量,這些常量是不需要您在php裡面進行定義就可以使用的。比如mysqli擴充套件的 predefined constants 那麼我們必須也在我們hel...