>  기사  >  백엔드 개발  >  PHP 문자열 관리 zend_string

PHP 문자열 관리 zend_string

coldplay.xixi
coldplay.xixi앞으로
2020-07-29 17:19:073226검색

PHP 문자열 관리 zend_string

문자열 관리: zend_string

모든 프로그램은 문자열을 관리해야 합니다. 여기서는 귀하의 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 learnku.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제