目 录序前言第1章 PHP解惑11.1 省略结束标签的便利性21.2 emtpy、isset、is_null的区别21.3 布尔值的正确打开方式31.4 变量作用域实践41.5 多维数组排序61.6
目 录序前言第1章 PHP解惑11.1 省略结束标签的便利性21.2 emtpy、isset、is_null的区别21.3 布尔值的正确打开方式31.4 变量作用域实践41.5 多维数组排序61.6 超级全局数组71.7 global关键字与global数组的区别81.8 活用静态变量91.9 require、require_once、include、include_once与autoload111.10 =与==、===的区别141.11 HereDoc与NowDoc151.12 函数传值与引用161.12.1 传值171.12.2 引用171.13 避免使用过多参数191.13.1 使用数组191.13.2 使用对象191.14 匿名函数211.15 return与exit221.16 is_callable()与method_exists()函数221.17 执行外部程序251.18 安全模式的使用说明261.19 提前计算循环长度271.20 SQL组合优化301.21 文件处理311.22 goto语句:最后的手段351.23 利用phar扩展来节省空间361.24 手册上的小瑕疵371.25 本章小结38第2章 深入PHP面向对象392.1 PHP与面向对象402.2 面向对象的一些概念402.3 类和对象412.4 使用对象432.5 构造方法与析构方法432.6 实例与多态452.7 类的扩展472.8 防止重写482.9 防止被扩展492.10 多态性502.11 接口502.12 抽象类542.13 静态方法和属性552.14 魔术方法572.15 命名空间632.16 traits662.17 本章小结68第3章 PHP输出缓冲区693.1 系统缓冲区693.2 什么是PHP输出缓冲区703.2.1 默认PHP输出缓冲区723.2.2 消息头和消息体733.2.3 用户输出缓冲区733.3 输出缓冲区的机制753.4 输出缓冲区的陷阱773.5 输出缓冲区实践783.6 输出缓冲与静态页面813.7 内容压缩输出833.8 本章小结84第4章 PHP缓存技术854.1 关于缓存854.2 文件缓存与静态页面874.3 页面静态化894.4 数据级别缓存914.5 OpCode缓存944.6 OpCode缓存管理工具1004.6.1 使用APC1014.6.2 eAccelerator的安装配置1064.6.3 XCache的安装配置1094.6.4 使用XCache缓存1104.6.5 APC、eAccelerator和XCache三者的比较1154.6.6 用户级别缓存1174.7 使用deflate压缩页面1184.8 内存数据库1194.8.1 关于memcached1194.8.2 memcached架构1214.8.3 memcached特性1214.8.4 memcached缓存策略1244.8.5 memcached 安装与配置1254.8.6 使用memcached做分布式Session1284.8.7 两个memcached扩展1304.8.8 安装pecl::memcache扩展1304.8.9 memcached 数据存取方法1314.9 缓存的陷阱1324.10 本章小结133第5章 PHP网络编程1345.1 Socket编程1345.1.1 Socket原理1345.1.2 Socket函数1365.1.3 PECL Socket函数库1375.1.4 PHP的Socket源码解析1415.1.5 创建TCP Socket客户端1435.1.6 创建TCP Socket服务器1455.1.7 创建UDP服务器1475.1.8 字符流与Socket1505.1.9 连接SMTP服务器1535.2 cURL核心技术1665.2.1 什么是cURL1665.2.2 安装和启用cURL1665.2.3 建立cURL的步骤1685.2.4 PHP cURL选项1695.2.5 cURL实践1735.3 本章小结187第6章 PHP调优、测试与工具1886.1 PHP调试1896.2 语法检查1896.3 输出调试信息1906.3.1 使用内部函数调试1916.3.2 建立堆栈跟踪1956.4 活用日志1986.5 Xdebug2006.5.1 安装Xdebug2016.5.2 应用Xdebug2066.5.3 Xdebug带来的增益2076.6 本章小结209第7章 用户验证策略2107.1 数据库设计2107.2 HTTP验证2137.2.1 用户名主机名验证2147.2.2 HTTP的身份验证机制2157.2.3 HTTP基本验证2167.2.4 摘要访问验证 2207.3 纯PHP验证2317.3.1 自定义Session2317.3.2 构造安全的Cookie2377.4 访问控制列表2397.5 本章小结241第8章 深度理解MySQL驱动与存储引擎2428.1 MySQL连接驱动库2428.2 mysqlnd驱动2438.3 存储引擎2478.3.1 取得存储引擎信息2488.3.2 定义存储引擎2488.3.3 内置的存储引擎2508.4 第三方存储引擎2578.5 结合硬件的引擎2588.6 MySQL替代品与分支2598.7 本章小结262第9章 PHP命令行界面2649.1 CLI简述2649.1.1 CLI的测试安装2649.1.2 CLI的配置参数2659.2 CLI命令行接口2669.3 CLI命令选项2669.4 CLI开发实践2699.5 CLI实际应用2799.6 内置服务器2839.7 本章小结285第10章 代码重构实践28610.1 什么是不良代码28610.2 什么是好代码28710.3 如何增加代码可读性28910.3.1 命名方式29010.3.2 表达式29210.3.3 代码段29210.4 可扩展性与效率重构29310.5 模块化设计29410.6 封装与解耦29410.7 代码效率29510.7.1 网络带宽的效率29610.7.2 内存效率低29610.7.3 程序处理效率低下29710.8 本章小结298