\SwooleBuffer

Class swoole_buffer

内存操作

Summary

Methods
Properties
Constants
__construct()
append()
substr()
clear()
expand()
write()
read()
$capacity
$length
No constants found
No protected methods found
No protected properties found
N/A
No private methods found
No private properties found
N/A

Properties

$capacity

$capacity : integer

Type

integer — 内存容量

$length

$length : integer

Type

integer — 占用长度

Methods

__construct()

__construct(integer  $size = 128) 

Parameters

integer $size

append()

append(string  $data) : integer

将一个字符串数据追加到缓存区末尾

Parameters

string $data

Returns

integer

substr()

substr(integer  $offset, integer  $length = -1, boolean  $remove = false) 

从缓冲区中取出内容

substr会复制一次内存 remove后内存并没有释放,只是底层进行了指针偏移。当销毁此对象时才会真正释放内存

Parameters

integer $offset

表示偏移量,如果为负数,表示倒数计算偏移量

integer $length

表示读取数据的长度,默认为从$offset到整个缓存区末尾

boolean $remove

表示从缓冲区的头部将此数据移除。只有$offset = 0时此参数才有效

clear()

clear() 

清理缓存区数据 执行此操作后,缓存区将重置。swoole_buffer对象就可以用来处理新的请求了。 swoole_buffer基于指针运算实现clear,并不会写内存

expand()

expand(integer  $new_size) 

为缓存区扩容

Parameters

integer $new_size

指定新的缓冲区尺寸,必须大于当前的尺寸

write()

write(integer  $offset, string  $data) 

向缓存区的任意内存位置写数据 此函数可以直接写内存。所以使用务必要谨慎,否则可能会破坏现有数据

$data不能超过缓存区的最大尺寸。 write方法不会自动扩容

Parameters

integer $offset

偏移量

string $data

写入的数据

read()

read(integer  $offset, integer|null  $length = null) : string

读取缓冲区内容

Parameters

integer $offset
integer|null $length

Returns

string