本書作者結(jié)合新版PHP,提供了自成一體的經(jīng)典實例,為你解決日常工作中遇到的各種問題。無論你是什么層次的開發(fā)人員,都可以遵循本書提供的既定模式和示例,使用PHP解決一些常見問題。參考書中的經(jīng)典實例,你可以快速識別和解決復(fù)雜的問題,不必重新發(fā)明輪子。這本實用指南將幫助你:利用函數(shù)和對象高效構(gòu)建應(yīng)用。探索現(xiàn)代PHP的類型系統(tǒng)。了解加密、錯誤處理、調(diào)試和性能調(diào)優(yōu)等關(guān)鍵概念。審視PHP包和擴展生態(tài)系統(tǒng)。學(xué)習(xí)如何構(gòu)建基本的Web和命令行應(yīng)用。安全處理設(shè)備中的加密文件和純文本文件。
編輯推薦
如果你是一名PHP開發(fā)人員,正在為常見問題尋找行之有效的解決方法,那就閱讀這本經(jīng)典實例吧,它能夠幫助你解決各種編程問題。PHP是一門極易使用的語言,這就是現(xiàn)今超過75%的在線網(wǎng)站使用它的原因。但是,PHP對編程錯誤的寬容程度令人難以置信,從而導(dǎo)致有問題的代碼一再被重復(fù)使用。
本書作者結(jié)合新版PHP,提供了自成一體的經(jīng)典實例,為你解決日常工作中遇到的各種問題。無論你是什么層次的開發(fā)人員,都可以遵循本書提供的既定模式和示例,使用PHP解決一些常見問題。參考書中的經(jīng)典實例,你可以快速識別和解決復(fù)雜的問題,不必重新發(fā)明輪子。
專家推薦
Eric把他在PHP社區(qū)中積累的豐富經(jīng)驗匯集到這本書中,通俗易懂。強烈推薦給新老PHP開發(fā)人員!
Steve Grunwell
Mailchimp資深軟件工程師
Eric A. Mann,從事軟件工程師工作近二十年。他曾為早期創(chuàng)業(yè)公司和財富500強企業(yè)構(gòu)建可伸縮的項目。
目錄
前言 1
第1 章 變量 7
11 定義常量9
12 創(chuàng)建可變變量 11
13 就地交換變量 13
第2 章 運算符 17
21 使用三元運算符代替if-else 塊 21
22 合并潛在的空值 24
23 比較恒等值 25
24 使用飛船運算符對值進(jìn)行排序 28
25 使用運算符抑制診斷錯誤 30
26 比較整數(shù)中的位 31
第3 章 函數(shù) 37
31 訪問函數(shù)的參數(shù) 40
32 為函數(shù)的參數(shù)設(shè)置默認(rèn)值 42
33 使用具名參數(shù) 44
34 規(guī)定函數(shù)參數(shù)和返回值類型 46
35 定義接受可變數(shù)量參數(shù)的函數(shù) 50
36 返回多個值 52
37 在函數(shù)內(nèi)訪問全局變量 54
38 在一個函數(shù)的多次調(diào)用之間管理狀態(tài) 58
39 定義動態(tài)函數(shù) 61
310 把函數(shù)作為參數(shù)傳遞給其他函數(shù) 62
311 使用簡潔的函數(shù)定義(箭頭函數(shù)) 65
312 創(chuàng)建沒有返回值的函數(shù) 68
313 創(chuàng)建不返回的函數(shù) 70
第4 章 字符串 73
41 訪問長字符串中的子字符串 76
42 從一個字符串中提取另一個字符串78
43 替換字符串的一部分 80
44 一次處理字符串的一個字節(jié) 83
45 生成隨機字符串 86
46 在字符串中內(nèi)插變量 87
47 把多個字符串拼接起來 89
48 管理存儲在字符串中的二進(jìn)制數(shù)據(jù)92
第5 章 數(shù)字 97
51 驗證變量中的數(shù)字 98
52 比較浮點數(shù) 100
53 舍入浮點數(shù) 102
54 生成真正的隨機數(shù) 105
55 生成可預(yù)測的隨機數(shù) 106
56 生成加權(quán)隨機數(shù) 109
57 計算對數(shù) 112
58 計算指數(shù) 113
59 把數(shù)字格式化為字符串 114
510 處理非常大或非常小的數(shù)字 115
511 在不同的進(jìn)制之間轉(zhuǎn)換數(shù)字 118
第6 章 日期和時間 121
61 獲取當(dāng)前日期和時間 122
62 格式化日期和時間 124
63 把日期和時間轉(zhuǎn)換為UNIX 時間戳 128
64 從UNIX 時間戳中提取日期和時間信息 130
65 計算兩個日期之間的差異 131
66 從任意字符串中解析日期和時間 133
67 驗證日期137
68 增加或減去日期 138
69 跨時區(qū)計算時間 142
第7 章 數(shù)組 145
71 為數(shù)組中的一個鍵關(guān)聯(lián)多個元素 147
72 用一定范圍內(nèi)的數(shù)字初始化數(shù)組 150
73 迭代數(shù)組中的項 152
74 從關(guān)聯(lián)數(shù)組和數(shù)字?jǐn)?shù)組中刪除元素154
75 改變數(shù)組的大小 158
76 把一個數(shù)組追加到另一個數(shù)組中 161
77 根據(jù)現(xiàn)有數(shù)組的片段創(chuàng)建數(shù)組 164
78 數(shù)組和字符串之間的轉(zhuǎn)換 168
79 反轉(zhuǎn)數(shù)組171
710 對數(shù)組進(jìn)行排序 173
711 基于函數(shù)對數(shù)組進(jìn)行排序 176
712 隨機排列數(shù)組中的元素 178
713 把一個函數(shù)應(yīng)用于數(shù)組的每個元素上 179
714 把數(shù)組歸約為單個值 182
715 迭代無限大或非常大(特別耗資源)的數(shù)組 184
第8 章 類和對象 189
81 由自定義的類實例化對象 197
82 使用定義的默認(rèn)值構(gòu)造對象 199
83 在類中定義只讀屬性 201
84 析構(gòu)用不到的對象 204
85 使用魔術(shù)方法提供動態(tài)屬性 207
86 擴展類以定義附加功能 209
87 強制類表現(xiàn)出特定的行為 212
88 創(chuàng)建抽象基類 217
89 防止更改類和方法 219
810 克隆對象 224
811 定義靜態(tài)屬性和方法 228
812 內(nèi)省對象的私有屬性或方法 231
813 在類之間重用代碼 233
第9 章 安全和加密 239
91 過濾、驗證和凈化用戶輸入 246
92 把敏感憑證放在應(yīng)用代碼外部 251
93 散列和驗證密碼 253
94 加密和解密數(shù)據(jù) 257
95 把加密數(shù)據(jù)存入文件 263
96 加密簽名發(fā)送給其他應(yīng)用的消息 268
97 驗證加密簽名 270
第10 章 文件處理 273
101 創(chuàng)建或打開本地文件 274
102 把文件讀入字符串 276
103 讀取文件的特定片段 278
104 就地修改文件 279
105 同時寫入多個文件 281
106 鎖定文件,防止其他進(jìn)程訪問或修改 283
第11 章 流 287
111 把數(shù)據(jù)流式寫入臨時文件和從臨時文件中流式讀取數(shù)據(jù) 292
112 讀取PHP 輸入流 294
113 寫入PHP 輸出流 297
114 從一個流中讀取,寫入另一個流 300
115 把不同的流處理程序組合在一起 302
116 自定義流包裝器 306
第12 章 錯誤處理 311
121 查找并修復(fù)解析錯誤 311
122 創(chuàng)建和處理自定義異常 313
123 隱藏錯誤消息,不讓終端用戶看到 316
124 使用自定義錯誤處理程序319
125 把錯誤記錄到外部流 321
第13 章 調(diào)試和測試 323
131 使用調(diào)試器擴展 325
132 編寫單元測試 327
133 自動化單元測試 333
134 靜態(tài)代碼分析 336
135 記錄調(diào)試信息 338
136 將變量內(nèi)容轉(zhuǎn)儲為字符串342
137 使用內(nèi)置Web 服務(wù)器快速運行應(yīng)用 346
138 使用單元測試通過git-bisect 檢測版本控制項目中的回歸 348
第14 章 性能調(diào)優(yōu) 355
141 計算函數(shù)的執(zhí)行時間 358
142 對應(yīng)用的性能進(jìn)行基準(zhǔn)測試 363
143 緩存操作碼,提升應(yīng)用速度 370
第15 章 包和擴展 375
151 定義Composer 項目 378
152 尋找Composer 包 381
153 安裝和更新Composer 包 383
154 安裝PHP 原生擴展 387
第16 章 數(shù)據(jù)庫 389
161 關(guān)系數(shù)據(jù)庫 389
162 鍵值存儲器 390
163 圖數(shù)據(jù)庫 391
164 文檔數(shù)據(jù)庫 392
165 連接SQLite 數(shù)據(jù)庫 392
166 使用PDO 連接外部數(shù)據(jù)庫提供程序 395
167 凈化數(shù)據(jù)庫查詢中的用戶輸入 399
168 模擬數(shù)據(jù)庫集成測試的數(shù)據(jù) 402
169 使用Eloquent ORM 查詢SQL 數(shù)據(jù)庫 408
第17 章 PHP 異步編程 413
171 異步從遠(yuǎn)程API 獲取數(shù)據(jù) 419
172 等待多個異步操作的結(jié)果421
173 中斷一個操作,執(zhí)行另一個操作 423
174 在單獨的線程中運行代碼427
175 在線程之間收發(fā)消息 432
176 使用Fiber 管理流內(nèi)容 437
第18 章 PHP 命令行 441
181 解析程序參數(shù) 442
182 讀取交互式用戶輸入 446
183 為控制臺輸出著色 447
184 使用Symfony Console 創(chuàng)建命令行應(yīng)用 449
185 使用PHP 原生的REPL 453