모든 프로그램은 문자열을 관리해야 합니다. 여기서는 귀하의 PHP 요구사항에 맞는 맞춤형 솔루션(zend_string
)을 자세히 설명합니다. PHP는 문자열로 작업해야 할 때마다 zend_string
구조를 사용합니다. 이 구조는 단순히 C 언어의 char *
문자열 유형을 둘러싼 얇은 래퍼입니다. zend_string
。每次 PHP 需要使用字符串时,都会使用 zend_string
结构。该结构仅仅是 C 语言的 char *
字符串类型的简单精简包装。
它添加了内存管理的功能,所以同一字符串可以在多个地方共享,而无需重复。另外,一些字符串是“内部的”,即“持久的”分配,并通过内存管理特殊管理,以便它们不会在多个请求中被销毁。之后,那些从Zend 内存管理获得永久分配。
相关学习推荐:PHP编程从入门到精通
这里是简单的zend_string
结构:
struct _zend_string { zend_refcounted_h gc; zend_ulong h; size_t len; char val[1]; };
如你所见,该结构嵌入了一个 zend_refcounted_h
标头。这个是内存管理和引用需要用到的。 由于该字符串很有可能作为哈希表检查的关键字,因此它在 h
字段中嵌入了其哈希值。这是无符号长整型 zend_ulong
。仅在需要对 zend_string
进行哈希处理时会用到,特别是和哈希表:zend_array一起用时。这很有可能。
如你所知,字符串知道其长度为 len
字段,以支持“二进制字符串。二进制字符串是嵌入一个或多个 NUL
字符(
위 내용은 PHP 문자열 관리 zend_string의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!