日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

php8擴(kuò)展arginfo生成工具及工具初體驗(yàn)介紹

瀏覽:87日期:2022-06-14 08:02:17
目錄正文上手體驗(yàn)準(zhǔn)備工作生成擴(kuò)展骨架撰寫函數(shù)原型實(shí)現(xiàn)函數(shù)邏輯編寫單元測(cè)試編譯、測(cè)試和安裝加入到php.ini實(shí)測(cè)正文

php8提供了非常方便的擴(kuò)展函數(shù)或類參數(shù)信息的生成工具。

只需要維護(hù)一份xyz.stub.php,就可以使用工具生成 xyz_arginfo.h。

毫無疑問,這種方式,又降低了廣大 phper 開發(fā)擴(kuò)展的門檻,更易維護(hù)。

上手體驗(yàn)

生成擴(kuò)展骨架。

cd extphp ext_skel.php --ext test

隨便添加一個(gè)函數(shù),更改 test.stub.php。

<?php/** @generate-function-entries */function test1(): void {}function test2(string $str = ''): string {}function test3(int $integer = 123): int {}

重新生成 test_arginfo.h。

php ../../build/gen_stub.php test.stub.php

相關(guān) commit 可以 點(diǎn)擊這兒

寫個(gè)簡(jiǎn)單的擴(kuò)展舉例,通過php擴(kuò)展的方式來實(shí)現(xiàn)python中的all和 any函數(shù)。

準(zhǔn)備工作下載php最新源碼已經(jīng)安裝好php生成擴(kuò)展骨架cd extphp ext_skel.php --ext python撰寫函數(shù)原型

編輯 python.stub.php。

<?php/** @generate-function-entries */function all(array $arr): bool {}function any(array $arr): bool {}

根據(jù) python.stub.php 生成 python_arginfo.h。

php ../../build/gen_stub.php python.stub.php實(shí)現(xiàn)函數(shù)邏輯

編輯 python.c。

PHP_FUNCTION(all){ zval *input; zval *item; int result = 1, item_result = 1; HashTable *htbl; ZEND_PARSE_PARAMETERS_START(1, 1)Z_PARAM_ARRAY(input) ZEND_PARSE_PARAMETERS_END(); htbl = Z_ARRVAL_P(input); ZEND_HASH_FOREACH_VAL(htbl, item) {item_result = zend_is_true(item);result &= item_result; } ZEND_HASH_FOREACH_END(); RETURN_BOOL(result);}/* {{{ void any() */PHP_FUNCTION(any){ zval *input; zval *item; int result = 0, item_result = 0; HashTable *htbl; ZEND_PARSE_PARAMETERS_START(1, 1)Z_PARAM_ARRAY(input) ZEND_PARSE_PARAMETERS_END(); htbl = Z_ARRVAL_P(input); ZEND_HASH_FOREACH_VAL(htbl, item) {item_result = zend_is_true(item);result |= item_result; } ZEND_HASH_FOREACH_END(); RETURN_BOOL(result);}編寫單元測(cè)試

編輯 002.phpt和003.phpt, 新建 004.phpt和005.phpt。

--TEST--Check all function true case--SKIPIF--<?phpif (!extension_loaded('python')) { echo 'skip';}?>--FILE--<?phpvar_dump(all([]));var_dump(all([1]));var_dump(all([-1, 1, '1']));?>--EXPECT--bool(true)bool(true)bool(true)--TEST--Check all function false case--SKIPIF--<?phpif (!extension_loaded('python')) { echo 'skip';}?>--FILE--<?phpvar_dump(all(['0']));var_dump(all([0]));var_dump(all(['']));var_dump(all([false]));var_dump(all([1, -1, 100, false]));var_dump(all([0, -1, 100, 1]));var_dump(all(['1', -1, '', 100, 1]));?>--EXPECT--bool(false)bool(false)bool(false)bool(false)bool(false)bool(false)bool(false)--TEST--Check any function true case--SKIPIF--<?phpif (!extension_loaded('python')) { echo 'skip';}?>--FILE--<?phpvar_dump(any(['a', 'b', 'c', 'd']));var_dump(any([['a', 'b', '', 'd']]));var_dump(any([['', 'b', 'c', 'd']]));var_dump(any([['a', 'b', 'c', '']]));?>--EXPECT--bool(true)bool(true)bool(true)bool(true)--TEST--Check all function false case--SKIPIF--<?phpif (!extension_loaded('python')) { echo 'skip';}?>--FILE--<?phpvar_dump(any(['0']));var_dump(any([0]));var_dump(any(['']));var_dump(any([false]));var_dump(any([0, '0', '', false]));?>--EXPECT--bool(false)bool(false)bool(false)bool(false)bool(false)編譯、測(cè)試和安裝./configure && makemake testsudo make install加入到php.iniphp -i | grep ini # 定位你的php.ini文件

加入

extension=python.so

查看是否成功

php -m | grep python實(shí)測(cè)php -r 'var_dump(all([]));“php -r 'var_dump(any([]));'

PHP8新增了蠻多有用的宏和特性。

以上就是php8擴(kuò)展arginfo生成工具及工具初體驗(yàn)介紹的詳細(xì)內(nèi)容,更多關(guān)于php8擴(kuò)展arginfo生成工具的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: PHP
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产99精品| 韩日一区二区| 国产一区清纯| 91精品国产乱码久久久久久久| www在线观看黄色| 日韩中文在线播放| 韩日一区二区三区| 伊人久久成人| 亚洲视频国产| 日韩精品久久久久久久软件91| 国产亚洲精品久久久久婷婷瑜伽| 午夜欧美视频| 亚洲精品一区二区在线播放∴| 午夜久久av| 国产日韩欧美三区| 麻豆精品久久| 麻豆精品蜜桃| 亚洲深夜福利| 日本三级亚洲精品| 老司机免费视频一区二区三区| 视频在线不卡免费观看| 激情久久中文字幕| 亚洲精品美女91| 国产精品久久乐| 精精国产xxxx视频在线野外| 欧美成人综合| 亚洲一区二区三区久久久| 日韩成人在线看| 国产69精品久久| 欧美日韩国产在线一区| 日韩欧乱色一区二区三区在线| 久久99久久人婷婷精品综合| 国产精品久久久久av电视剧| 久久福利一区| 国产福利亚洲| 999久久久免费精品国产| 免费成人av在线播放| 久久精品国产999大香线蕉| 亚洲婷婷在线| 欧美一区网站| 日韩精品免费一区二区在线观看| 日韩中文字幕1| 国产一区二区色噜噜| 亚洲综合另类| 精品国内亚洲2022精品成人 | 亚洲精华国产欧美| 日本aⅴ精品一区二区三区 | 狠狠爱www人成狠狠爱综合网| 日韩精品一级| 99久久精品国产亚洲精品| 日本在线一区二区三区| 精品一区二区三区的国产在线观看| 欧美日韩在线观看视频小说| 日本a口亚洲| 欧美亚洲激情| 国产精品一区高清| 欧美午夜不卡| 久久一区视频| 免费一区二区视频| 日本久久精品| 亚洲精品在线国产| 日韩精品网站| 国产高清视频一区二区| 亚洲一区二区三区四区电影| 日韩欧美国产精品综合嫩v| 欧美三级第一页| 欧美精品一二| 精品欠久久久中文字幕加勒比| 日韩一区欧美二区| 91精品一区二区三区综合| 国产精品99久久免费观看| 国产亚洲一级| 麻豆mv在线观看| 日本欧美久久久久免费播放网| 国产91一区| 首页国产精品| 久久精品超碰| 亚洲欧美日韩精品一区二区| 亚洲美女久久精品| 国产精品激情电影| 午夜久久av| 亚洲少妇在线| 毛片在线网站| 美腿丝袜亚洲一区| 日本不卡高清| 久热re这里精品视频在线6| av在线日韩| 国内精品伊人| 国产精品v一区二区三区| 亚洲人成高清| 久久午夜精品一区二区| 久久精品播放| 日韩深夜视频| 精品免费av一区二区三区| 欧美日本不卡高清| 涩涩涩久久久成人精品| 国产一区二区精品| 中文字幕人成乱码在线观看 | 久久精品国产久精国产爱| 国产亚洲精品美女久久| 婷婷综合一区| 免费在线观看不卡| 国产精品日韩| 尤物在线精品| 91久久久久| 欧美在线亚洲| 不卡av一区二区| 91久久久精品国产| 欧美丝袜一区| 九一精品国产| 播放一区二区| 日韩精品一卡| 国产一区久久| 亚洲欧洲一区| 先锋亚洲精品| 视频在线观看一区| 免费成人av在线播放| 蜜臀精品久久久久久蜜臀| 久久亚洲风情| 少妇精品在线| 青青草91久久久久久久久| 欧美日韩夜夜| 国产精品99精品一区二区三区∴ | 亚洲网站视频| 九九久久婷婷| 国产免费成人| 免费成人在线影院| 亚洲18在线| 日韩精品乱码av一区二区| 日本一区二区中文字幕| 91欧美极品| 国产精品17p| 成人在线观看免费视频| 五月天av在线| 午夜影院欧美| 老司机久久99久久精品播放免费| 久久高清一区| 美国三级日本三级久久99 | 日韩精品亚洲专区| 国产精品调教| av高清不卡| 91久久国产| 四虎精品一区二区免费| 欧美日韩精品一区二区三区在线观看| 国产欧美三级| 国产精品久久观看| 欧美搞黄网站| 亚洲精品美女91| 国产欧美自拍一区| а√天堂8资源中文在线| 欧美日韩视频网站| 免费观看不卡av| 亚洲免费资源| 久久精品一区二区国产| 中文字幕在线看片| 亚洲一区国产| 国产日产精品_国产精品毛片 | 日韩在线视频一区二区三区| 国产精品亚洲综合在线观看| 激情国产在线| 日韩网站在线| 欧美日韩精品一区二区三区视频 | 精品一区二区三区中文字幕| 日韩欧美精品| 老司机精品久久| 国产精品一区二区av交换| 日韩一区亚洲二区| 亚洲欧美成人综合| 国产精品久一| 欧美69视频| 欧美一区91| 午夜精品成人av| 亚洲精品系列| 中文av在线全新| 中文在线日韩| 动漫av一区| 蜜臀久久久久久久| 精品香蕉视频| 欧美专区18| 精品美女在线视频| 久久av在线| 麻豆mv在线观看| 亚洲狼人精品一区二区三区| 国产在线观看91一区二区三区| 欧美女激情福利| 欧美xxxx性| av不卡在线看| 国际精品欧美精品| 亚洲资源在线| 午夜精品成人av| 日韩在线成人| 久久精品亚洲人成影院| 欧美一区久久| 亚洲精品1区| 国产高潮在线| 91亚洲无吗| 亚洲免费激情| 日韩国产一区二区| 国产日韩欧美中文在线| 亚洲精品电影|