类型指定符
|
对应的C类型
|
描述
|
l
|
long
|
符号整数
|
d
|
double
|
浮点数
|
s
|
char *, int
|
二进制字符串,长度
|
b
|
zend_bool
|
逻辑型(1或0)
|
r
|
zval *
|
资源(文件指针,数据库连接等)
|
a
|
zval *
|
联合数组
|
o
|
zval *
|
任何类型的对象
|
O
|
zval *
|
指定类型的对象。需要提供目标对象的类类型
|
z
|
zval *
|
无任何操作的zval
|
设置返回值并且结束函数
|
设置返回值
|
宏返回类型和参数
|
RETURN_LONG(l)
|
RETVAL_LONG(l)
|
整数
|
RETURN_BOOL(b)
|
RETVAL_BOOL(b)
|
布尔数(1或0)
|
RETURN_NULL()
|
RETVAL_NULL()
|
NULL
|
RETURN_DOUBLE(d)
|
RETVAL_DOUBLE(d)
|
浮点数
|
RETURN_STRING(s, dup)
|
RETVAL_STRING(s, dup)
|
字符串。如果dup为1,引擎会调用estrdup()重复s,使用拷贝。如果dup为0,就使用s
|
RETURN_STRINGL(s, l, dup)
|
RETVAL_STRINGL(s, l, dup)
|
长度为l的字符串值。与上一个宏一样,但因为s的长度被指定,所以速度更快。
|
RETURN_TRUE
|
RETVAL_TRUE
|
返回布尔值true。注意到这个宏没有括号。
|
RETURN_FALSE
|
RETVAL_FALSE
|
返回布尔值false。注意到这个宏没有括号。
|
RETURN_RESOURCE(r)
|
RETVAL_RESOURCE(r)
|
资源句柄。
|
函数声明宏
|
语义
|
PHP_MINIT_FUNCTION()
|
当PHP被装载时,模块启动函数即被引擎调用。这使得引擎做一些例如资源类型,注册INI变量等的一次初始化。
|
PHP_MSHUTDOWN_FUNCTION()
|
当PHP完全关闭时,模块关闭函数即被引擎调用。通常用于注销INI条目
|
PHP_RINIT_FUNCTION()
|
在每次PHP请求开始,请求前启动函数被调用。通常用于管理请求前逻辑。
|
PHP_RSHUTDOWN_FUNCTION()
|
在每次PHP请求结束后,请求前关闭函数被调用。经常应用在清理请求前启动函数的逻辑。
|
PHP_MINFO_FUNCTION()
|
调用phpinfo()时模块信息函数被呼叫,从而打印出模块信息。
|
宏参数
|
参数类型
|
rsrc_result
|
zval *, which should be set with the registered resource information.
zval * 设置为已注册资源信息
|
rsrc_pointer
|
Pointer to our resource data.
资源数据指针
|
rsrc_type
|
The resource id obtained when registering the resource type.
注册资源类型时获得的资源id
|
标准C库
|
VCWD宏
|
说明
|
getcwd()
|
VCWD_GETCWD()
|
|
fopen()
|
VCWD_FOPEN
|
|
open()
|
VCWD_OPEN()
|
用于两个参数的版本
|
open()
|
VCWD_OPEN_MODE()
|
用于三个参数的open()版本
|
creat()
|
VCWD_CREAT()
|
|
chdir()
|
VCWD_CHDIR()
|
|
getwd()
|
VCWD_GETWD()
|
|
realpath()
|
VCWD_REALPATH()
|
|
rename()
|
VCWD_RENAME()
|
|
stat()
|
VCWD_STAT()
|
|
lstat()
|
VCWD_LSTAT()
|
|
unlink()
|
VCWD_UNLINK()
|
|
mkdir()
|
VCWD_MKDIR()
|
|
rmdir()
|
VCWD_RMDIR()
|
|
opendir()
|
VCWD_OPENDIR()
|
|
popen()
|
VCWD_POPEN()
|
|
access()
|
VCWD_ACCESS()
|
|
utime()
|
VCWD_UTIME()
|
|
chmod()
|
VCWD_CHMOD()
|
|
chown()
|
VCWD_CHOWN()
|
|
参数
|
含义
|
rsrc
|
资源值保存到的变量名。它应该和资源有相同类型。
|
rsrc_type
|
rsrc的类型,用于在内部把资源转换成正确的类型
|
passed_id
|
寻找的资源值(例如zval **)
|
default_id
|
如果该值不为-1,就使用这个id。用于实现资源的默认值。
|
resource_type_name
|
资源的一个简短名称,用于错误信息。
|
resource_type
|
注册资源的资源类型id
|
宏
|
访问对象
|
C 类型
|
Z_LVAL, Z_LVAL_P,
Z_LVAL_PP
|
整型值
|
long
|
Z_BVAL, Z_BVAL_P,
Z_BVAL_PP
|
布尔值
|
zend_bool
|
Z_DVAL, Z_DVAL_P,
Z_DVAL_PP
|
浮点值
|
double
|
Z_STRVAL, Z_STRVAL_P,
Z_STRVAL_PP
|
字符串值
|
char *
|
Z_STRLEN, Z_STRLEN_P, Z_STRLEN_PP
|
字符串长度值
|
int
|
Z_RESVAL, Z_RESVAL_P,Z_RESVAL_PP
|
资源值
|
long
|
Z_ARRVAL, Z_ARRVAL_P,
Z_ARRVAL_PP
|
联合数组
|
HashTable *
|
Z_TYPE, Z_TYPE_P,
Z_TYPE_PP
|
Zval类型
|
Enumeration (IS_NULL, IS_LONG, IS_DOUBLE, IS_STRING, IS_ARRAY, IS_OBJECT, IS_BOOL, IS_RESOURCE)
|
Z_OBJPROP,
Z_OBJPROP_P,
Z_OBJPROP_PP
|
对象属性hash(本章不会谈到)
|
HashTable *
|
Z_OBJCE, Z_OBJCE_P,
Z_OBJCE_PP
|
对象的类信息(本章不会谈到)
|
zend_class_entry
|
参数
|
含义
|
module_name
|
与传递给ZEND_BEGIN_MODULE_GLOBALS()宏相同的扩展名称。
|
globals_ctor
|
构造函数指针。在myfile扩展里,函数原形与void php_myfile_init_globals(zend_myfile_globals *myfile_globals)类似
|
globals_dtor
|
析构函数指针。例如,php_myfile_init_globals(zend_myfile_globals *myfile_globals)
|
参数
|
含义
|
name
|
INI条目名
|
default_value
|
如果没有在INI文件中指定,条目的默认值。默认值始终是一个字符串。
|
modifiable
|
设定在何种环境下INI条目可以被更改的位域。可以的值是:
• PHP_INI_SYSTEM. 能够在php.ini或http.conf等系统文件更改
• PHP_INI_PERDIR. 能够在 .htaccess中更改
• PHP_INI_USER. 能够被用户脚本更改
• PHP_INI_ALL. 能够在所有地方更改
|
on_modify
|
处理INI条目更改的回调函数。你不需自己编写处理程序,使用下面提供的函数。包括:
• OnUpdateInt
• OnUpdateString
• OnUpdateBool
• OnUpdateStringUnempty
• OnUpdateReal
|
property_name
|
应当被更新的变量名
|
struct_type
|
变量驻留的结构类型。因为通常使用全局变量机制,所以这个类型自动被定义,类似于zend_myfile_globals。
|
struct_ptr
|
全局结构名。如果使用全局变量机制,该名为myfile_globals。
|