PHP
文章平均质量分 79
醉醚红色
2001年加入飞熊军团队页游翼三国天子令魂斗三国天翔三国系列主创团队核心成员参与翼三国系列1代程序开发2011年进入翼三国系列2代项目构建翼三国II程序主框架及数据结构并以此为基础构建后续产品的系统其它参与2001-2009年飞熊军初始的创建者之一参与规划社区游戏黄巾风云系列负责主程序开发
展开
-
PHP扩展开发(1):快速入门
一. 摘要 PHP Extension是扩展PHP的主要手段,如数据库访问,序列化,或者远程过程调用,使用过PHP的人,其实都使用过PHP Extension,PHP里面很多的函数也是通过扩展实现的,而在PHP源码中包含了几十个扩展,PECL仓库中也提供了上百个扩展,所以只要使用 PHP开发,就不可避免的要开发PHP Extension。本文会用图文并茂的方式一步一步为大家介绍如何开发一个P转载 2013-09-14 13:01:53 · 848 阅读 · 0 评论 -
PHP扩展开发(3):初始化文件
在开发PHP扩展时,有时候我们需要访问php.ini文件,本文通过一个例子介绍如何在PHP扩展中访问INI设置项。首先打开php_fetion_echo.h头文件(快速入门篇中的例子),在里面加上函数声明: PHP_FUNCTION(say_hello);在fetion_echo.c文件中,加入下面代码: PHP_INI_BEGIN() PHP_INI_ENTRY("hello_greetin转载 2013-09-14 13:09:15 · 1092 阅读 · 0 评论 -
PHP扩展开发(4):函数返回值
在第一篇快速入门里面,我们提到函数的返回值要是用Zend API里面提供的宏定义来返回,在一定程度上这么说是不正确的,其实PHP扩展里面所有的函数的返回值都是通过一个名为return_value的变量传 递的,这个变量同时也是函数中的一个参数,在PHP_FUNCTION()原型中定义。该参数总是包含有一个事先申请好空间的zval(关于zval是 PHP扩展开发里面比较复杂的部分,在后面的接收参数一转载 2013-09-14 13:11:17 · 1373 阅读 · 0 评论 -
PHP扩展开发(5):参数声明
在开发PHP扩展时,参数信息也需要声明,并通过ZEND_FE宏将函数与参数关联起来,注册到函数表中。大家还记得我们在快速入门篇中的一段代码吧: ZEND_BEGIN_ARG_INFO(arg_say_goodbye, 0) ZEND_ARG_INFO(0, name) ZEND_END_ARG_INFO() const zend_function_entry fetion_echo_funct转载 2013-09-14 13:14:23 · 636 阅读 · 0 评论 -
PHP扩展开发(7):zval结构
在前面的文章多次提到了zval结构,其实所有用户定义的变量在PHP中都是用zval类型来表示的,当我门 使用zend_parse_parameters函数解析参数时,Zend引擎会根据相应的数据类型进行类型转换,而由于PHP中的数组、对象和资源类 型,在C语言中没有对应的类型,所以无法进行类型转换,它们都使用zval表示,先看一下zval结构定义: typedef pval zval; typ转载 2013-09-14 13:30:16 · 1023 阅读 · 0 评论 -
PHP扩展开发(2):实现类扩展
在第一篇文章中,我们所开发的扩展是单个函数,本篇文章看一下如何开发一个类扩展。假设我们要用PHP扩展实 现一个类Person,它有一个private的成员变量$_name和两个public的实例方法getName()和setName(),可以用 PHP代码表示如下: <?php class Person { private $_name; public function转载 2013-09-14 13:05:45 · 958 阅读 · 0 评论 -
PHP扩展开发(6):接收参数
函数的参数则是PHP代码层和C代码层之间交换数据的唯一途径,因为PHP的调用语法是动态的,不会做任何错误检查,所以检查参数工作需要交给开发PHP扩展人员完成,看一下我们在快速入门里面的一段代码,使用zend_parse_parameters来解析参数: PHP_FUNCTION(say_goodbye) { char *arg = NULL; int arg_len, len;转载 2013-09-14 13:17:22 · 1035 阅读 · 0 评论