記住,每次新的 PHP 主要/次要版本都會(huì)更改參數(shù),比如 PHP Api 版本,這就是為什么你需要針對(duì)新的 PHP 版本重新編譯的原因。
> /path/to/php70/bin/phpize -v Configuring for: PHP Api Version: 20151012 Zend Module Api No: 20151012 Zend Extension Api No: 320151012 > /path/to/php71/bin/phpize -v Configuring for: PHP Api Version: 20160303 Zend Module Api No: 20160303 Zend Extension Api No: 320160303 > /path/to/php56/bin/phpize -v Configuring for: PHP Api Version: 20131106 Zend Module Api No: 20131226 Zend Extension Api No: 220131226
注意
Zend 模塊 Api 編號(hào) 本身是使用 年 月 日 的日期格式構(gòu)建。這是 API 更改和并被標(biāo)記的日期。Zend 擴(kuò)展 Api 編號(hào) 是 Zend 版本,其次是 Zend 模塊 Api 編號(hào)。
注意
數(shù)字太多?是的,一個(gè) API 編號(hào)綁定一個(gè) PHP 版本,對(duì)任何人來(lái)說(shuō)都足夠了,并且可以簡(jiǎn)化對(duì) PHP 的理解。不幸的是,除了 PHP 版本本身,還增加了3種不同的 API 編號(hào)。你應(yīng)該找哪一個(gè)?答案是任何一個(gè):當(dāng) PHP 版本演變時(shí),它們?nèi)N同時(shí)演變。由于歷史原因,我們有三種不同編號(hào)。
但是,你是一位 C開(kāi)發(fā)人員,不是嗎?為什么不根據(jù)這些數(shù)字構(gòu)建一個(gè)“兼容的”頭文件?我們?cè)谖覀兊臄U(kuò)展中使用了類似這些:
#include "php.h" #include "Zend/zend_extensions.h" #define PHP_5_5_X_API_NO 220121212 #define PHP_5_6_X_API_NO 220131226 #define PHP_7_0_X_API_NO 320151012 #define PHP_7_1_X_API_NO 320160303 #define PHP_7_2_X_API_NO 320160731 #define IS_PHP_72 ZEND_EXTENSION_API_NO == PHP_7_2_X_API_NO #define IS_AT_LEAST_PHP_72 ZEND_EXTENSION_API_NO >= PHP_7_2_X_API_NO #define IS_PHP_71 ZEND_EXTENSION_API_NO == PHP_7_1_X_API_NO #define IS_AT_LEAST_PHP_71 ZEND_EXTENSION_API_NO >= PHP_7_1_X_API_NO #define IS_PHP_70 ZEND_EXTENSION_API_NO == PHP_7_0_X_API_NO #define IS_AT_LEAST_PHP_70 ZEND_EXTENSION_API_NO >= PHP_7_0_X_API_NO #define IS_PHP_56 ZEND_EXTENSION_API_NO == PHP_5_6_X_API_NO #define IS_AT_LEAST_PHP_56 (ZEND_EXTENSION_API_NO >= PHP_5_6_X_API_NO && ZEND_EXTENSION_API_NO < PHP_7_0_X_API_NO) #define IS_PHP_55 ZEND_EXTENSION_API_NO == PHP_5_5_X_API_NO #define IS_AT_LEAST_PHP_55 (ZEND_EXTENSION_API_NO >= PHP_5_5_X_API_NO && ZEND_EXTENSION_API_NO < PHP_7_0_X_API_NO) #if ZEND_EXTENSION_API_NO >= PHP_7_0_X_API_NO #define IS_PHP_7 1 #define IS_PHP_5 0 #else #define IS_PHP_7 0 #define IS_PHP_5 1 #endif
看見(jiàn)了?
或者更簡(jiǎn)單(更好)的是使用 PHP_VERSION_ID ,這你可能更熟悉:
#if PHP_VERSION_ID >= 50600
想了解更多編程學(xué)習(xí),敬請(qǐng)關(guān)注php培訓(xùn)欄目!
更多關(guān)于云服務(wù)器,域名注冊(cè),虛擬主機(jī)的問(wèn)題,請(qǐng)?jiān)L問(wèn)西部數(shù)碼官網(wǎng):m.ps-sw.cn