久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長資訊網
最全最豐富的資訊網站

php8的擴展arginfo生成工具之使用初體驗

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

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

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

上手體驗:

生成擴展骨架。

cd ext php ext_skel.php --ext test

隨便添加一個函數(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

相關 commit 可以 點擊這兒(https://github.com/php/php-src/compare/master…nikic:php-stubs)

寫個簡單的擴展舉例,通過php擴展的方式來實現(xiàn)python中的allany函數(shù)。

準備工作。
  • 下載php最新源碼
  • 已經安裝好php
生成擴展骨架。

cd ext php 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
實現(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); }
編寫單元測試,編輯 002.phpt003.phpt, 新建 004.phpt005.phpt
--TEST-- Check all function true case --SKIPIF-- <?php if (!extension_loaded('python')) {     echo 'skip'; } ?> --FILE-- <?php var_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-- <?php if (!extension_loaded('python')) {     echo 'skip'; } ?> --FILE-- <?php var_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-- <?php if (!extension_loaded('python')) {     echo 'skip'; } ?> --FILE-- <?php var_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-- <?php if (!extension_loaded('python')) {     echo 'skip'; } ?> --FILE-- <?php var_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)
編譯、測試和安裝

./configure && make make test sudo make install
加入到php.ini

php -i | grep ini # 定位你的php.ini文件

加入

extension=python.so

查看是否成功

php -m | grep python
實測

php -r "var_dump(all([]));“ php -r "var_dump(any([]));"

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

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
深夜福利视频一区二区| 99精品电影| 蜜桃久久av一区| 欧美在线亚洲综合一区| 欧美精品激情| 蜜臀精品一区二区三区在线观看 | 久久精品99久久久| 久久狠狠久久| 美女视频黄免费的久久| 精品国产美女a久久9999| 国产一区一一区高清不卡| 国产盗摄——sm在线视频| 久久久久网站| 亚洲综合三区| 日韩国产精品久久久久久亚洲| 日韩成人午夜精品| 国产欧美一区二区色老头| 精品三级av| 久久免费大视频| 国产日韩综合| 亚洲一区欧美| 91成人在线网站| 国产一区国产二区国产三区| 久久国产免费| 一区二区精品| 精品中文在线| 蜜桃国内精品久久久久软件9| 视频一区二区三区入口| 97久久亚洲| 在线人成日本视频| 另类av一区二区| 久久国产精品美女| 91tv亚洲精品香蕉国产一区| 爽好久久久欧美精品| 国产精品嫩模av在线| 波多视频一区| 欧美一区=区| 国产精品99久久久久久董美香| 精品国产免费人成网站| 黑丝一区二区| 国产精品99久久免费| 黑丝美女一区二区| 日韩精彩视频在线观看| 高清av不卡| 亚洲精品国产精品粉嫩| 国产suv精品一区二区四区视频| 免费精品国产| 国产欧美三级| 婷婷综合网站| 久久午夜影院| 综合激情一区| 精品久久精品| 亚洲一级淫片| 午夜精品久久久久久久久久蜜桃| 婷婷综合成人| 亚洲特级毛片| 美女久久99| 亚洲精一区二区三区| 日韩欧美一区二区三区在线视频| 一级欧美视频| 精品欧美一区二区三区在线观看| 日本国产一区| 亚洲女同中文字幕| 国产一区二区三区久久久久久久久| 天堂av在线一区| 日韩电影免费网站| 日韩精品欧美成人高清一区二区| 久久久国产亚洲精品| 国产精品毛片视频| 中文字幕免费一区二区| 亚洲91精品| 精品99在线| 日韩国产欧美视频| 日韩一级精品| 成人午夜国产| 久久影院资源站| 日韩精品一区二区三区免费视频| 欧美a级片一区| 国产精品13p| 国产精品久一| 日韩精品欧美大片| 亚洲精品a级片| 伊伊综合在线| 欧美激情 亚洲a∨综合| 亚洲专区视频| 午夜欧美精品| 999精品在线| 亚洲永久av| 久久精品系列| 国产精品视频一区视频二区| 五月亚洲婷婷 | 国产精品嫩草影院在线看| 快she精品国产999| 婷婷成人综合| 伊人久久av| 国产a久久精品一区二区三区| 国产精品综合| 欧美另类中文字幕| 四虎国产精品免费久久| 久久电影一区| 国产亚洲福利| 自由日本语亚洲人高潮| 久久精品卡一| 日韩精品影视| 99精品在线免费在线观看| 麻豆视频在线看| 日韩不卡一区| www.九色在线| 狠狠久久伊人| 国产精品66| 国产精品啊v在线| 国产精品视频首页| 欧美黄色一区| 电影91久久久| 黄色在线观看www| 免费一二一二在线视频| 亚洲精品国产嫩草在线观看| 最新中文字幕在线播放| 国产一区二区三区不卡av | 成人国产综合| 成人在线黄色| 日韩免费福利视频| 精品视频97| 国产传媒在线观看| av一区在线| 免费不卡中文字幕在线| 国产精品88久久久久久| 国产一级久久| 免费观看在线综合色| 最新亚洲国产| 青青草国产精品亚洲专区无| 国产欧美日韩综合一区在线播放| 国产毛片一区二区三区| 麻豆成人av在线| 国产在线观看www| 久久婷婷久久| 先锋亚洲精品| 亚洲资源网站| 国产亚洲一区| 精品视频国产| 国产综合婷婷| 日韩影院免费视频| 欧美日韩午夜电影网| 久久影院一区二区三区| 国产高清不卡| 91久久中文| 日韩在线视频一区二区三区| 国产精品一国产精品| 97精品国产一区二区三区 | 中文字幕av亚洲精品一部二部 | 久久国产日韩欧美精品| 国产精品v一区二区三区| 裤袜国产欧美精品一区| 好看的av在线不卡观看| 日韩一二三区在线观看| 精品少妇av| 欧美日韩视频| 97成人在线| 日韩av自拍| 丝袜美腿亚洲一区二区图片| 国产精品丝袜在线播放| 色老板在线视频一区二区| 亚洲激情中文在线| 日本a级不卡| 日韩欧美另类一区二区| 中文不卡在线| 美女av一区| 亚洲精品小说| 国产经典一区| 免费成人网www| 国产日韩一区二区三区在线| 美女一区网站| 婷婷成人av| 欧洲在线一区| 69堂精品视频在线播放| 91精品综合| 国产日韩一区二区三区在线播放| 97国产精品| 亚洲一区二区三区四区电影| 精品视频免费| 在线精品一区二区| 樱桃视频成人在线观看| 亚洲精品影视| 99久久九九| 美女尤物国产一区| 手机精品视频在线观看| av中文字幕在线观看第一页 | 免费日韩成人| 蘑菇福利视频一区播放| 成人国产精选| 久久午夜精品| 国产色播av在线| 91精品丝袜国产高跟在线| 亚洲特色特黄| 精品在线网站观看| 日本中文字幕视频一区| 亚洲二区精品| 国产在线一区不卡| 青青青国产精品| 老鸭窝毛片一区二区三区|