时间:2021-05-18
英文版下载: PHP 5 Power Programming https://ma)宏。前者应当用于仅当上下文作为一个单独的参数,后者应用于接受多个参数的函数。在后一种情况中,因为根据取名,逗号在上下文的前面,所以TSRMLS_CC不能是第一个函数参。
在函数原形中,可以分别使用TSRMLS_D和TSRMLS_DC宏声名正在接收上下文。
下面是前一例子的重写,利用了参数传递上下文。
复制代码 代码如下:
void myfunc(TSRMLS_D){
MYFILE_G(myglobal) = 2;
}
PHP_FUNCTION(my_php_function)
{
…
myfunc(TSRMLS_C);
…
}
~
总 结
现在,你已经学到了足够的东西来创建自己的扩展。本章讲述了一些重要的基础来编写和理解PHP扩展。Zend引擎提供的扩展API相当丰富,使你能够开发面向对象的扩展。几乎没有文档谈几许多高级特性。当然,依靠本章所学的基础知识,你可以通过浏览现有的原码学到很多。
更多关于信息可以在PHP手册的扩展PHP章节http://www.php.net/manual/en/zend.php中找到。另外,你也可以考虑加入PHP开发者邮件列表internals@ lists.php.net,该邮件列表围绕开发PHP 本身。你还可以查看一下新的扩展生成工具——PECL_Gen(http://pear.php.net/package/PECL_Gen),这个工具正在开发之中,比起本章使用的ext_skel有更多的特性。
此外你还可以关注风雪之隅, 会有更多相关知识更新.
词汇表
binary safe 二进制安全 context 上下文 extensions 扩展 entry 条目 skeleton 骨架 Thread-Safe Resource Manager TSRM 线程安全资源管理器
[1] 可参考译者写的
[2] 译者:可以使用phpcli程序在控制台里执行php文件。
[3] 译者:可以查看到生成的FETCH_RESOURCE()宏参数是一些'???'。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
用C/C++扩展PHP的优缺点:优点:效率,还是效率减少PHP脚本的复杂度,极端情况下,你只需要在PHP脚本中,简单的调用一个扩展实现的函数,然后你所有的功能都
发现你眼中不一样的语言汇编:C:Java:C#:PHP:Python:Go:Haskell:Lisp:C++:
简介:Blitztemplates是一个用C语言开发的快速的PHP模板引擎,它是作为一个PHP的扩展功能。它开始作为一个php_templates更换,但发展到
作为一名C++程序员,在转做PHP开发的过程中,对PHP数组产生了一些混淆,与C++数组有相似的地方,也有一些不同,下面就全面地分析一下PHP的数组及其与C++
功能强大得不得了,可以插入的语言包括:C/C++,XML/HTML,JavaScript,CSS,C#,Java,PHP,Python,Ruby,SQL,ASP