PHP基础
PHP基础 第十八章 PHP 核心:骇客指南
## 1、序言 ## 2、内存管理 #### 2.1 内存管理基础 用 C 语言编程时,开发者要手工地进行内存管理。因为 PHP 经常用作 Web 服务器的模块,内存管理与预防内存泄漏紧密关联。此外要知道 PHP 可能用于线程环境中,这意味着全局变量可能导致竞争状况。 此外,Zend 引擎要面对一个十分特殊的使用模式:在一段比较短的时间内,许多 zval 结构大小的内存块和其他的小内存块被申请又再被释放。 为了满足以上的需求,Zend 引擎提供为了处理请求相关数据提供了一种特殊的内存管理器。请求相关数据是指只需要服务于单个请求,最迟会在请求结束时释放的数据。 防止有内存泄漏并尽可能快地释放所有内存是内存管理的重要组成部分。因为安全原因,在请求结束时, Zend 引擎会释放所有由上面提到的 API 所分配的内存。如果 PHP 使用 --enable-debug 配置选项进行构建,这将产生一个警告。 #### 2.2 数据持久化 #### 2.3 线程安全的资源管理器 ## 3、变量的使用 #### 3.1 介绍 为了在 PHP 核心中使用变量,就必须要学会 PHP 所使用的基本概念的差异。首先,PHP 是一门动态的弱类型语言。其次,PHP 的写机制里会使用内存处理的引用计数的复本。请查阅引用计数基本知识 章节以获得如何使用计数和引用的细节。 PHP 变量,通常来说,由两部分组成:标签(例如,可能是符号表中的一个条目)和实际变量容器。在此手册的绝大部分内容中都是针对变量容器。 变量容器,在代码中称为 zval,掌握了所需处理变量的所有数据。 包括实际值、当前类型、统计指向此容器的标签的数量,和指示这些标签是引用还是副本的标志。 在 zvalue_value 中,通过名称和注释可清楚地找到字段所使用的不同类型的内部表现形式——尤其是当你知道 PHP 数组实际上是哈希表时。但是,其中也遗漏了几种 PHP 类型:NULL, boolean 和 resources。NULL 不需要值,NULL 就是此类型的值。对 boolean 和 resource 的值来说,PHP 也使用值字段。比如 boolean 值,为 false 时存放 0,为 true 时存放 1。resource 类型的变量存放的是资源的 id。 现在,有个好消息是你不需要知道这些细节,因为在 PHP 中总是使用宏;坏消息是有很多宏: 有直接存取 zval 的宏,还有经常是指向 zval 的指针,甚至是指向 zval 的指针的指针,大多数宏都有引用这些指针的捷径。这些宏分布于 Zend/zend.h, Zend/zend_operators.h 和 Zend/zend_API.h 之中。 #### 3.2 创建变量并设置值
顶部
收展
底部
[TOC]
目录
PHP基础 第一章 基本语法
PHP基础 第二章 类型
PHP基础 第三章 变量
PHP基础 第四章 常量
PHP基础 第五章 运算符
PHP基础 第六章 流程控制
PHP基础 第七章 函数
PHP基础 第八章 命名空间
PHP基础 第九章 异常与错误
PHP基础 第十章 类与对象
PHP基础 第十一章 生成器
PHP基础 第十二章 引用
PHP基础 第十三章 预定义变量
PHP基础 第十四章 上下文(Context)选项和参数
PHP基础 第十五章 支持的协议和封装协议
PHP基础 第十六章 安全
PHP基础 第十七 章 特点
PHP基础 第十八章 PHP 核心:骇客指南
PHP基础 第十九章 核心配置选项列表
相关推荐
PHP函数
PHP设计模式
PHP算法
PHP版本