正版现货新书 PHP面试一战到底 9787302583639 闫小坤
全新正版现货,以书名为准,放心购买,购书咨询18931383650朱老师
¥
56.25
6.3折
¥
89
全新
库存52件
作者闫小坤
出版社清华大学出版社有限公司
ISBN9787302583639
出版时间2020-03
装帧平装
开本16开
定价89元
货号11245053
上书时间2024-12-16
商品详情
- 品相描述:全新
- 商品描述
-
作者简介
闫小坤,
毕业于中国科学技术大学,计算机硕士。服务端技术专家,10余年PHP开发经验。曾就职于腾讯、滴滴等互联网公司,有良好的架构能力和丰富的业务抽象经验。
目录
第1章 PHP开发基础知识 1
1.1 环境搭建 1
1.1.1 下载与安装 2
1.1.2 CLI模式 2
1.1.3 CGI模式 3
1.1.4 开发工具 6
1.2 基本语法 10
1.2.1 基本规范 10
1.2.2 数据类型 10
1.2.3 变量 11
1.2.4 常量 12
1.2.5 运算符 13
1.2.6 流程控制 13
1.2.7 函数 15
1.2.8 字符串 16
1.2.9 数组 16
1.2.10 类与对象 17
1.2.11 异常处理 18
1.2.12 命名空间 19
1.3 本章小结 19
1.4 练习 19
第2章 数据类型 20
2.1 布尔类型 20
2.1.1 概念 20
2.1.2 面试题:冒泡排序 21
2.1.3 类型转换 22
2.1.4 面试题:布尔数据比较 22
2.2 整型 23
2.2.1 概念 23
2.2.2 面试题:大数求和 23
2.3 浮点型 25
2.3.1 概念 25
2.3.2 面试题:浮点数的比较 25
2.3.3 面试题:证明题 26
2.3.4 面试题:比较两个浮点数的大小 26
2.4 字符串 26
2.4.1 概念 26
2.4.2 面试题:从string中取其中的单个字符 27
2.4.3 面试题:求字符串表示的长度 27
2.4.4 面试题:反转字符串 28
2.5 数组 29
2.6 对象 29
2.7 回调函数 29
2.7.1 概念 29
2.7.2 回调函数的使用 30
2.7.3 面试题:call_user_func()和call_user_func_array()的区别 32
2.8 迭代器 33
2.9 资源 33
2.10 NULL值 34
2.10.1 概念 34
2.10.2 面试题:NULL值比较 34
2.11 本章小结 34
2.12 练习 35
第3章 变量 36
3.1 变量引用 36
3.1.1 指针与引用 36
3.1.2 引用的取消 37
3.1.3 forech的引用陷阱 37
3.2 预定义变量 40
3.2.1 概念 40
3.2.2 面试题:执行脚本的位置 41
3.3.3 面试题:获取当前访问页面的URL 42
3.3 垃圾回收机制 42
3.4 作用域 43
3.4.1 函数作用域 43
3.4.2 global关键字 44
3.4.3 引用文件的变量作用域 44
3.4.4 超全局变量 44
3.5 本章小结 45
3.6 练习 45
第4章 函数 47
4.1 匿名函数与闭包 47
4.1.1 匿名函数与闭包的概念 47
4.1.2 匿名函数里的变量作用域 48
4.1.3 面试题:匿名函数中$this的使用 49
4.1.4 面试题:闭包是什么 49
4.2 递归 50
4.2.1 递归的原理 50
4.2.2 递归的优缺点 50
4.2.3 面试题:用递归实现斐波那契数列 51
4.2.4 面试题:二叉树的中序遍历 51
4.3 Lambda表达式 53
4.3.1 概念 53
4.3.2 匿名函数、闭包和Lambda表达式的关系 53
4.4 生成器(Generator)与 yield 54
4.4.1 生成器 54
4.4.2 yield 56
4.4.3 生成器的设计 56
4.4.4 面试题:用yield实现斐波那契数列 57
4.5 函数式编程 58
4.5.1 什么是函数编程 58
4.5.2 函数编程的理念 59
4.5.3 函数式编程的优势 60
4.6 本章小结 60
4.7 练习 60
第5章 类和对象 61
5.1 魔术方法 61
5.2 自动加载 62
5.2.1 __autoload 63
5.2.2 spl_autoload_register 64
5.2.3 spl_autoload 65
5.2.4 面试题:引用文件函数的区别 65
5.3 命名空间 66
5.3.1 命名空间的使用规范 66
5.3.2 面试题:命名空间 69
5.3.3 面试题:类名冲突的解决方法 69
5.4 PSR-4标准 69
5.5 本章小结 70
5.6 练习 71
第6章 字符串 73
6.1 字符串比较 73
6.2 类型转换 74
6.2.1 字符串转换为数字 74
6.2.2 面试题:表达式转换为数字 75
6.2.3 其他类型转换为字符串 75
6.3 字符集与字符编码 76
6.3.1 字符集 76
6.3.2 UTF-8编码规则 77
6.3.3 面试题:Unicode字符长度 78
6.3.4 Unicode与UTF-8的关系 78
6.4 字符串查找 78
6.5 关键词搜索 81
6.6 子序列 83
6.7 字符串转换操作 84
6.8 正则表达式 87
6.8.1 正则表达式基础 87
6.8.2 面试中常见的正则表达式 91
6.9 本章小结 93
6.10 练习 93
第7章 数组 94
7.1 数组函数 94
7.1.1 count 94
7.1.2 natsort 95
7.1.3 array_merge 96
7.1.4 栈与队列的操作 97
7.1.5 集合计算 98
7.2 数组排序 99
7.2.1 多维数组排序 99
7.2.2 多个数组排序 100
7.3 数组查找与搜索 102
7.3.1 面试题:找出缺失元素 102
7.3.2 面试题:删除数组中的重复项 105
7.4 数组的遍历操作 107
7.4.1 面试题:多维数组 107
7.4.2 面试题:螺旋访问数组 107
7.5 本章小结 109
7.6 练习 109
第8章 文件与目录 111
8.1 文件引用 111
8.1.1 文件引用方法 111
8.1.2 面试题:说明几个文件引用函数的区别 113
8.2 BOM 头 113
8.2.1 BOM的检测 113
8.2.2 BOM文件的修改 114
8.3 上传与下载 116
8.3.1 文件上传 116
8.3.2 文件下载 118
8.3.3 面试题:文件上传时的大小限制 119
8.4 文件操作 119
8.4.1 读取文件函数对比 119
8.4.2 文件锁 120
8.4.3 大文件读写 120
8.4.4 SPL文件处理 122
8.5 目录操作 123
8.5.1 面试题:计算相对路径 123
8.5.2 面试题:遍历目录 125
8.5.3 文件查找 126
8.6 硬连接和软连接 126
8.6.1 概念 126
8.6.2 面试题:硬连接和软连接 127
8.6.3 面试题:硬连接占用空间吗 127
8.6.4 面试题:部署上线系统的原理 128
8.7 本章小结 129
8.8 练习 129
第9章 PHP 7新特性 130
9.1 PHP 7 的新变化 130
9.1.1 标量类型声明 130
9.1.2 新增操作 131
9.1.3 太空船操作符(组合比较符) 131
9.1.4 通过define()定义常量数组 132
9.1.5 匿名类 132
9.1.6 Unicode codepoint 转译语法 132
9.1.7 Group use declarations 133
9.1.8 错误处理 133
9.2 PHP 7 的执行效率 133
9.2.1 内存优化 134
9.2.2 变量结构 134
9.2.3 字符串 134
9.2.4 数组 134
9.3 PHP 7变量在内核中的实现 135
9.3.1 PHP 5变量内部实现 135
9.3.2 PHP 5变量问题剖析 138
9.3.3 PHP 7 变量内部实现 139
9.3.4 PHP 7 与 PHP 5 变量内部实现的差别 142
9.3.5 面试题:检测链表中的环 142
9.4 字符串的内核实现 144
9.4.1 字符串的结构 145
9.4.2 二进制安全 145
9.4.3 柔性数组 146
9.4.4 面试题:string 内部实现 149
9.4.5 面试题:内存对齐机制 150
9.4.6 面试题:内存对齐机制的规则 150
9.4.7 面试题:柔性数组 150
9.4.8 面试题:二进制安全 151
9.4.9 面试题:zend_string结构体 151
9.5 数组的内核实现 151
9.5.1 数组概述 151
9.5.2 PHP 5数组在内核中的实现 152
9.5.3 PHP 7数组在内核中的实现 153
9.6 从PHP 5迁移到PHP 7 154
9.7 本章小结 156
9.8 练习 156
第10章 RDS关系型数据库 157
10.1 连接 157
10.2 执行SQL 160
10.3 表引擎 161
10.3.1 MyISAM和InnoDB的基本概念 161
10.3.2 面试题:MyISAM与InnoDB的区别 161
10.3.3 面试题:OLAP和OLTP 161
10.3.4 OLAP 的12条规则 162
10.4 索引 163
10.5 事务 165
10.6 PDO 167
10.7 慢SQL优化 169
10.7.1 发现慢SQL的方法 169
10.7.2 性能分析 170
10.7.3 性能优化 171
10.8 数据表设计 171
10.8.1 设计实务 171
10.8.2 面试题 172
10.9 隔离级别 173
10.10 MVCC机制 177
10.11 DDL操作 177
10.12 分库分表 178
10.13 本章小结 179
10.14 练习 179
第11章 NoSQL数据库 180
11.1 Memcache 180
11.1.1 内存管理 180
11.1.2 一致性哈希 181
11.2 Redis 182
11.2.1 数据结构 182
11.2.2 面试题 184
11.2.3 位图应用 185
11.2.4 持久化策略 187
11.3 集群介绍 190
11.3.1 Codis 190
11.3.2 Twemproxy 191
11.3.3 Redis Cluster 191
11.3.4 面试题 192
11.4 本章小结 192
11.5 练习 192
第12章 数据结构与算法 193
12.1 栈和队列 193
12.1.1 栈 193
12.1.2 栈的面试题 194
12.1.3 队列 197
12.2 链表 198
12.2.1 链表的概念 198
12.2.2 面试题 198
12.3 树的定义及分类 200
12.3.1 树的定义 200
12.3.2 树的分类 200
12.3.3 树的遍历 204
12.3.4 二叉树面试知识点总结 209
12.4 树的应用——字典树 209
12.4.1 字典树的原理 209
12.4.2 字典树的应用 213
12.5 排序 215
12.5.1 选择排序 215
12.5.2 冒泡排序 216
12.5.3 插入排序 217
12.5.4 堆排序 218
12.5.5 快速排序 221
12.5.6 归并排序 223
12.5.7 桶排序 224
12.5.8 常见排序算法总结 226
12.6 分治法 226
12.6.1 分治法的概念 226
12.6.2 分治法的面试题 227
12.7 动态规划 230
12.7.1 斐波那契数列的动态规划解法 230
12.7.2 动态规划方法的两个经典问题 231
12.8 贪心算法 238
12.8.1 概念 238
12.8.2 面试题 239
12.8.3 霍夫曼树 240
12.9 本章小结 242
12.10 练习 242
第13章 PHP安全知识 243
13.1 概述 243
13.2 输入校验 244
13.2.1 Register Globals 244
13.2.2 $_REQUEST 245
13.2.3 $_SERVER 246
13.2.4 数字校验 246
13.2.5 字符串校验 246
13.2.6 路径校验 247
13.3 XSS攻击 248
13.3.1 属性过滤 249
13.3.2 JSON与XSS 250
13.4 SQL注入 251
13.4.1 SQL Escaping 252
13.4.2 PDO的安全机制 253
13.5 CSRF攻击 254
13.6 SSRF攻击 257
13.7 短信轰炸 258
13.8 接口防刷 260
13.9 本章小结 261
13.10 练习 262
第14章 常见面试题 263
14.1 计算机网络相关面试题 263
14.1.1 网络7层协议 263
14.1.2 IP地址分类 264
14.1.3 HTTP状态码 265
14.1.4 POST和GET的区别 266
14.1.5 TCP 与 UDP 的区别 266
14.1.6 TCP 三次握手 267
14.1.7 Session和Cookie的区别 268
14.1.8 HTTP和HTTPS的区别 268
14.2 操作系统相关面试题 270
14.2.1 操作系统的作用是什么 270
14.2.2 操作系统的特性是什么 270
14.2.3 并发和并行的区别是什么 270
14.2.4 进程和线程的区别是什么 270
14.2.5 进程的状态有哪些 271
14.2.6 常见存储介质的访问速度 272
14.2.7 操作系统管理内存的机制有哪些 272
14.2.8 什么是虚拟内存,虚拟内存有什么作用 274
14.2.9 什么是死锁,死锁发生的条件是什么 274
14.3 设计模式相关面试题 274
14.3.1 单例模式 274
14.3.2 抽象工厂 275
14.3.3 适配器模式 277
14.4 Nginx相关面试题 278
14.4.1 Nginx有哪些优点 278
14.4.2 Nginx架构如何 278
14.4.3 Nginx如何处理连接 280
14.4.4 Nginx与Apache有什么差别 280
14.4.5 Nginx如何做负载均衡 281
14.4.6 什么是反向代理 281
14.4.7 sites-available和sites-enabled有什么区别 282
14.4.8 Nginx如何处理请求 282
14.4.9 Nginx的Worker数量如何设置 284
14.5 PHP-FPM相关面试题 284
14.5.1 CGI与FastCGI的区别是什么 284
14.5.2 Nginx与PHP-FPM通信的方式有哪些 285
14.5.3 PHP-FPM的进程管理方式有哪几种 285
14.5.4 PHP-FPM配置worker数量时,需要考虑哪些因素 285
14.5.5 PHP-FPM 事件驱动机制 286
14.6 Linux 287
14.6.1 一个文件设置为600,代表什么权限 287
14.6.2 如何设置文件的权限 287
14.6.3 如何查找访问次数多的IP 288
14.6.4 请描述Linux的事件模型 289
14.7 关于高并发 290
14.8 Restful风格 292
14.8.1 Rest 如何做版本控制 292
14.8.2 如何评价RESTful风格 292
14.9 日志 293
14.9.1 日志级别 293
14.9.2 日志实践 294
14.10 本章小结 294
14.11 练习 294
第15章 面试攻略 296
15.1 规划阶段 297
15.1.1 离职原因 297
15.1.2 自我定位 297
15.1.3 成长目标 298
15.1.4 行业选择 298
15.2 准备阶段 299
15.2.1 撰写简历 299
15.2.2 了解目标 301
15.2.3 投递简历 301
15.2.4 约定时间 302
15.3 面试阶段 302
15.3.1 面试礼仪 302
15.3.2 技术面试 303
15.3.3 项目面试 303
15.3.4 HR面试 303
15.4 Offer选择 303
15.5 入职阶段 304
15.5.1 背景调查 304
15.5.2 薪资核验 305
15.5.3 办理离职手续 305
15.5.4 正式入职新公司 305
15.6 面试的其他问题 306
15.6.1 关于“面试造大炮,工作打蚊子” 306
15.6.2 感觉面试官刁难自己 306
15.7 本章小结 306
15.8 练习 306
第16章 职业漫谈 307
16.1 职业发展 307
16.2 能力框架 308
16.3 工作与总结 309
16.4 技术晋升 309
16.5 技术储备 310
16.6 PHP工程师的Plan B 311
16.7 本章小结 311
参考书目及资料 312
内容摘要
本书基于PHP近期新版本撰写,主要讲解了以下四部分的内容:PHP的基础知识和环境搭建;PHP语言层面的知识,包括数据类型、变量、函数、类和对象、字符串、数组、文件与目录、PHP 7新特性等;其他必须要掌握的PHP语言之外的知识和技能,包括关系型数据库、非关系型数据库、常见的数据结构与算法、常见漏洞及其防范措施、计算机网络、操作系统、设计模式、Nginx、PHP-FPM、高并发应对、Restful、日志等;面试攻略和职业规划。本书注重基础知识,深入底层原理,以提高学习能力为道,以传授面试技巧为术,希望面试者能够发挥出自己的真才实学。本书适合于即将或正在面试的PHP初级或中级程序员、对PHP开发感兴趣的人员、有一定的PHP开发经验,希望更深入了解的人员、有编程经验,希望转型做PHP开发的人员使用。
主编推荐
"PHP作为一种流行的开发语言,已被应用到优选约80%的网站和网络应用里。一份统计资料显示,PHP在优选被部署在超过 210万台服务器上,有2.4亿的网站在使用 PHP
— 没有更多了 —
以下为对购买帮助不大的评价