亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

PHP擴展遷移為PHP7擴展兼容性問題記錄

 更新時間:2016年02月15日 09:09:37   投稿:mrr  
PHP7擴展編寫的時候,提供的一些內(nèi)核方法和之前的PHP之前的版本并不能完全兼容。有不少方法參數(shù)做了調(diào)整。下面是在遷移過程中遇到的一些問題,感興趣的朋友參考下吧

PHP7擴展編寫的時候,提供的一些內(nèi)核方法和之前的PHP之前的版本并不能完全兼容。有不少方法參數(shù)做了調(diào)整。下面是在遷移過程中遇到的一些問題。記錄下來,避免大家再踩坑。

add_assoc_stringl

方法參數(shù)改為四個。

add_assoc_stringl(parray, key, value, value_len);

遷移的時候,只要把最后一個參數(shù)刪除即可。

add_assoc_string

方法參數(shù)從四個改為了三個。

add_assoc_stringl(parray, key, value);

遷移的時候,只要把最后一個參數(shù)刪除即可。

add_next_index_stringl

方法參數(shù)從四個改為了三個。

add_next_index_stringl(parray, value, value_len);

遷移的時候,只要把最后一個參數(shù)刪除即可。

add_next_index_string

方法參數(shù)從三個改為了兩個。

add_next_index_string(parray, value);

遷移的時候,只要把最后一個參數(shù)刪除即可。

RETURN_STRINGL

方法參數(shù)從三個改為了二個。

RETURN_STRINGL(value, length);

遷移的時候,只要把最后一個參數(shù)刪除即可。

錯誤:‘INT64_MAX' 在此作用域中尚未聲明

原因為深入研究。在 #include "php.h" 上面加上一行

#include <stdint.h> 
#ifndef INT64_MAX
# define INT64_MAX INT64_C( 9223372036854775807)
#endif
#ifndef INT64_MIN
# define INT64_MIN (-INT64_C( 9223372036854775807)-1)
#endif

解決。

創(chuàng)建類

可以參考mysqli擴展mysqli.c文件中的 mysqli_objects_new 方法。

變量聲明從堆上分配,改為棧上分配。

如,原先代碼為

zval* sarray_l;
ALLOC_INIT_ZVAL(sarray_l);
array_init(sarray_l);

改為

zval sarray_l;
array_init(&sarray_l);
zend_hash_get_current_key_ex

方法參數(shù)從六個改為了四個。

ZEND_API int ZEND_FASTCALL zend_hash_get_current_key_ex(const HashTable *ht, zend_string **str_index, zend_ulong *num_index, HashPosition *pos);

遷移的時候,只要把第三個和第五個參數(shù)刪除即可。

錯誤:‘Z_TYPE_PP' 在此作用域中尚未聲明

已經(jīng)沒有Z_TYPE_PP宏,只有Z_TYPE 和Z_TYPE_P宏方法的定義。

h2錯誤:不能從 ‘zend_string*' 轉(zhuǎn)換到 ‘const char*'

PHP7中對于字符串的處理使用zend_string進行存儲。如果想把zend_string 轉(zhuǎn)為 const char 。需要使用 ZSTR_VAL()宏方法。代碼如下:

zend_string *str;
char *sptr;
.....
sptr = ZSTR_VAL(str);

錯誤:‘IS_BOOL' 在此作用域中尚未聲明

已經(jīng)沒有IS_BOOL類型。而是分為了IS_TRUE 和 IS_FALSE.

錯誤:‘Z_BVAL' 在此作用域中尚未聲明

已經(jīng)沒有Z_BVAL宏。但是可以通過類型是否是 IS_TRUE和IS_FALSE來判定。

如果類型為IS_TRUE,則值為true。如果類型為IS_FALSE則值為false。

錯誤:‘zend_object_store_get_object' 在此作用域中尚未聲明

增加如下代碼:

static inline hsf_object *hsf_fetch_object(zend_object *obj) /* {{{ */ {
return (user_object *)((char*)(obj) - XtOffsetOf(user_object, std));
}
/* }}} */
#define Z_USEROBJ_P(zv) hsf_fetch_object(Z_OBJ_P((zv)))

然后把zend_object_store_get_object改為Z_USEROBJ_P即可。

注意,user_object是你定義的結(jié)構(gòu)體。

以上所述是針對PHP擴展遷移為PHP7擴展兼容性問題記錄的相關(guān)敘述,希望對大家有所幫助。

相關(guān)文章

  • Yii2單元測試用法示例

    Yii2單元測試用法示例

    這篇文章主要介紹了Yii2單元測試用法,結(jié)合實例形式分析了Yii2單元測試的具體實現(xiàn)與使用技巧,需要的朋友可以參考下
    2016-11-11
  • 解決laravel session失效的問題

    解決laravel session失效的問題

    今天小編就為大家分享一篇解決laravel session失效的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • Ajax提交表單時驗證碼自動驗證 php后端驗證碼檢測

    Ajax提交表單時驗證碼自動驗證 php后端驗證碼檢測

    Ajax提交表單時實現(xiàn)驗證碼自動驗證,驗證碼先檢測正確性,不正確則不提交表單,更新驗證碼,php后端驗證碼檢測,感興趣的小伙伴們可以參考一下
    2016-07-07
  • ThinkPHP模版中導(dǎo)入CSS和JS文件的方法

    ThinkPHP模版中導(dǎo)入CSS和JS文件的方法

    這篇文章主要介紹了ThinkPHP模版中導(dǎo)入CSS和JS文件的方法,分析了使用import標(biāo)簽與load標(biāo)簽實現(xiàn)css和js文件導(dǎo)入的技巧,需要的朋友可以參考下
    2014-11-11
  • laravel excel 上傳文件保存到本地服務(wù)器功能

    laravel excel 上傳文件保存到本地服務(wù)器功能

    今天小編就為大家分享一篇laravel excel 上傳文件保存到本地服務(wù)器功能,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Laravel使用Caching緩存數(shù)據(jù)減輕數(shù)據(jù)庫查詢壓力的方法

    Laravel使用Caching緩存數(shù)據(jù)減輕數(shù)據(jù)庫查詢壓力的方法

    這篇文章主要介紹了Laravel使用Caching緩存數(shù)據(jù)減輕數(shù)據(jù)庫查詢壓力的方法,以項目實例形式較為詳細(xì)的分析了Laravel框架使用Caching緩存的原理與具體實現(xiàn)技巧,需要的朋友可以參考下
    2016-03-03
  • Yii中特殊行為ActionFilter的使用方法示例

    Yii中特殊行為ActionFilter的使用方法示例

    這篇文章主要給大家介紹了關(guān)于Yii中特殊行為ActionFilter的使用方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • 詳談PHP文件目錄基礎(chǔ)操作

    詳談PHP文件目錄基礎(chǔ)操作

    這篇文章主要詳細(xì)介紹了PHP文件目錄基礎(chǔ)操作,并附上大量的操作實例,非常的詳盡,有需要的朋友可以參考下
    2014-11-11
  • ThinkPHP整合datatables實現(xiàn)服務(wù)端分頁的示例代碼

    ThinkPHP整合datatables實現(xiàn)服務(wù)端分頁的示例代碼

    下面小編就為大家分享一篇ThinkPHP整合datatables實現(xiàn)服務(wù)端分頁的示例代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • php檢測useragent版本示例

    php檢測useragent版本示例

    這篇文章主要介紹了php檢測useragent版本的示例,需要的朋友可以參考下
    2014-03-03

最新評論