### PHP与MySQL程序设计
#### 第1章:PHP概述
- **历史**
- **PHP4**:PHP的第四个主要版本,在此版本中引入了许多重要的改进,包括更好的内存管理和对象支持。
- **PHP5**:标志着PHP的一个重要转折点,引入了面向对象编程的改进,以及对数据类型的支持更为丰富。
- **PHP5.3**:增加了命名空间的支持,使得大型项目中的代码组织更为清晰。
- **PHP6**:尽管最终没有发布稳定版本,但其计划中的一些特性如Unicode支持被后续版本采纳。
- **一般语言特性**
- **实用性**:PHP因其易于学习且部署方便的特点而受到欢迎,尤其适合快速开发Web应用。
- **强大功能**:支持多种数据库连接,具备丰富的内置函数库,能够处理各种复杂任务。
- **可选择性**:提供了灵活的开发选项,开发者可以根据具体需求选择最适合的技术栈。
- **成本**:作为开源软件,PHP的使用几乎不涉及额外费用,降低了开发成本。
#### 第2章:环境配置
- **安装的前提条件**
- **下载Apache**:Apache是Web服务器的一种,用于接收HTTP请求并响应动态或静态内容。
- **下载PHP**:PHP解释器负责执行PHP代码。
- **下载文档**:官方文档对于解决开发过程中的问题非常有用。
- **在Linux/Windows上安装Apache和PHP**
- 在不同操作系统上安装过程略有差异,但基本步骤相似:下载所需软件包、配置环境变量、启动服务等。
- **测试安装**
- 通过简单的PHP脚本来测试是否能正确解析PHP代码。
- **配置PHP**
- **在Linux上构建时配置PHP**:可能需要调整编译选项来优化性能或启用特定功能。
- **定制Windows构建**:通常涉及修改`php.ini`文件以适应特定的应用需求。
- **运行时配置**
- **管理PHP的配置指令**:了解如何更改设置以提高安全性或优化性能。
- **PHP的配置指令**:掌握如何利用`php.ini`文件进行配置。
- **选择代码编辑器**
- **Adobe Dreamweaver CS5**:一款功能强大的集成开发环境,特别适合网页设计师。
- **Notepad++**:免费且轻量级的选择,适用于快速编码。
- **PDT**:PHP Development Tools,提供专门针对PHP开发的功能。
- **Zend Studio**:专为PHP开发人员设计的IDE,支持从代码编写到调试的全过程。
- **选择Web托管服务提供商**
- 考虑价格、性能、技术支持等因素来选择合适的托管服务。
#### 第3章:PHP基础
- **在web页面中嵌入PHP代码**
- **默认语法**:使用`<?php` ... `?>`标记将PHP代码嵌入到HTML中。
- **短标签**:某些环境下支持`<?=` ... `?>`这样的简写形式。
- **脚本**:可以在PHP中使用标准的脚本结构。
- **为代码添加注释**
- **单行C++语法**:使用`//`进行单行注释。
- **shell语法**:使用`#`进行单行注释。
- **多行C语法**:使用`/*` ... `*/`进行多行注释。
- **向浏览器输出数据**
- **print语句**:简单输出文本。
- **echo语句**:另一种输出文本的方式,常用于拼接多个字符串。
- **printf语句**:格式化输出字符串。
- **sprintf**:类似`printf`,但结果保存在一个变量中而不是直接输出。
- **PHP支持的数据类型**
- **标量数据类型**:包括整型、浮点型、布尔型和字符串。
- **复合数据类型**:数组和对象。
- **特殊数据类型**:资源和NULL。
- **标识符与变量**
- **标识符**:用来命名变量、函数等的名称。
- **变量**:存储数据的容器,PHP采用动态类型机制。
- **变量的变量**:通过一个变量来引用另一个变量。
- **超级全局变量**:在任何作用域内都可以访问的一组预定义变量。
- **常量**
- 定义后不能改变的值。
- **表达式**
- **操作数**:参与运算的数据项。
- **操作符**:用于组合操作数的符号。
- **字符串插入**
- **双引号**:支持变量插值。
- **转义序列**:使用`\`来插入特殊字符。
- **单引号**:不支持变量插值。
- **大括号**:在双引号字符串中指定变量。
- **heredoc**:使用三个连续的尖括号定义多行字符串。
- **nowdoc**:类似heredoc,但保留原始字符串中的换行符和转义字符。
- **控制结构**
- **条件语句**:根据不同的条件执行不同的代码块。
- **循环语句**:重复执行一段代码直到满足某个条件。
- **文件包含语句**:允许将一个文件包含到另一个文件中。
#### 第4章:函数
- **调用函数**
- 使用函数名和括号内的参数来调用。
- **创建函数**
- **按值传递参数**:参数复制给函数内的变量副本。
- **按引用传递参数**:直接操作原始变量,而不是其副本。
- **默认参数值**:函数定义时可指定参数的默认值。
- **使用类型提示**:确保传递给函数的参数符合特定类型。
- **从函数返回值**:函数执行完毕后返回计算结果。
- **递归函数**:函数内部调用自身。
- **函数库**
- PHP拥有庞大的函数库,涵盖了从字符串操作到数据库交互的广泛功能。
#### 第5章:数组
- **创建数组**
- **用`array()`创建数组**:最常用的方法。
- **用`list()`提取数组**:用于从数组中获取值,并分配给多个变量。
- **用预定义的值范围填充数组**:例如使用`range()`函数。
- **输出数组**
- 使用`print_r()`或`var_dump()`等函数来显示数组内容。
- **添加和删除数组元素**
- **在数组头/尾添加元素**:使用`array_unshift()`和`array_push()`。
- **从数组头/尾删除元素**:使用`array_shift()`和`array_pop()`。
- **定位数组元素**
- **搜索数组**:查找特定值的存在与否。
- **获取数组键/值**:使用`array_keys()`和`array_values()`。
- **遍历数组**
- **获取当前数组键/值**:使用`key()`和`current()`。
- **移动数组指针**:使用`next()`和`prev()`。
- **确定数组的大小和唯一性**
- **确定数组的大小**:使用`count()`。
- **统计数组元素出现的频度**:使用`array_count_values()`。
- **确定唯一的数组元素**:使用`array_unique()`。
- **数组排序**
- **逆置数组元素顺序**:使用`array_reverse()`。
- **置换数组键和值**:使用`array_flip()`。
- **数组排序**:使用`sort()`及其变体。
- **合并、拆分、接合和分解数组**
- **合并数组**:使用`array_merge()`。
- **递归追加数组**:使用`array_merge_recursive()`。
- **拆分数组**:使用`array_chunk()`。
- **接合数组**:使用`implode()`。
- **求交集/差集**:使用`array_intersect()`和`array_diff()`。
- **其他有用的数组函数**
- **返回一组随机的键**:使用`array_rand()`。
- **随机洗牌数组元素**:使用`shuffle()`。
以上概述了《PHP与MySQL程序设计》一书的部分内容,旨在帮助读者理解PHP的基本概念和技术要点。接下来的章节将继续深入探讨面向对象编程、高级特性、错误处理、数据库操作等方面的知识。