当前位置: 首页 > 科技观察

PHPFFI允许在PHP脚本中嵌入C代码

时间:2023-03-13 19:30:48 科技观察

Zend的DmitryStogov通过允许PHP执行嵌入的C代码扩展了PHP的领域。这将允许完全访问本机C函数、变量和数据结构。解决方案PHPFFI作为实验性扩展提供,但需要PHP7.3的开发版本。该解决方案尚未准备好用于生产,但它建立在坚实的基础上,使用允许高级语言代码生成的FFI(外部函数接口)库libffi。输入:printf("HelloWorldfrom%s!\n","PHP");var_dump($libc->getenv("PATH"));var_dump($libc->time(null));$tv=$libc->new("structtimeval");$tz=$libc->new("structtimezone");$libc->gettimeofday($tv,$tz);var_dump($tv->tv_sec,$tv->tv_usec,$tz);?>将输出:HelloWorldfromPHP!string(135)"/usr/lib64/qt-3.3/bin:/usr/lib64/ccache:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/home/dmitry/.local/bin:/home/dmitry/bin"int(1523617815)int(1523617815)int(977765)object(CData)#3(2){["tz_minuteswest"]=>int(-180)["tz_dsttime"]=>int(0)}FFI目前的数据结构访问还是比较慢的,比访问rawPHP数组和对象慢了大约4倍目前速度不容乐观,但是还是可以帮助节省内存和金钱的。有PHPFFI的不断优化,性能会不断提升。