< >
💥 錯誤百出的PHP程式碼麥擱來亂 💥👉 快速識別、解決錯誤,阻絕重用編譯錯誤的PHP程式碼👉 容易理解與遵循的模式與範例,解決常見問題👉 遠離錯誤百出的PHP程式碼,提升PHP程式碼品質和你的生活品質🎯 本書適合網站維護工程師,以及想將轉換技能至PHP最新技術的工程師。「Eric將他在PHP社群的豐富經驗濃縮成一本易於理解的書。強烈推薦給各種資歷的PHP開發人員!」 —Steve Grunwell Mailchimp資深軟體工程師如果您是PHP開發人員,正在尋找常見問題的解決方法,本書能提供相關程式碼,幫助讀者解決各種程式設計上的疑難雜症。PHP是一種非常容易使用的程式語言,這也解釋了為什麼當今超過75%的線上網站,仍以PHP作為主要的語言。此外,還對程式錯誤有著令人難以置信的寬容,這使得有問題的程式碼持續被重複使用著。作者Eric A. Mann透過獨立章節,運用最新的PHP 8.2版本,詳述各種問題與處理對策,協助讀者解決日常工作中所遇到的狀況。本書更深入探討適合所有開發人員遵循的標準模式和規範,以解決PHP的常見問題。透過這些實用技巧,我們將快速辨識並解決複雜的問題,而無需重新發明輪子。本書作為一本實用指南,將幫助讀者:‧建立函數和物件,組成更高效率的應用程式。‧探索現代PHP的模式系統。‧理解加密、錯誤處理、偵錯和效能調整等關鍵概念。‧檢查PHP套件/擴充功能的生態系統。‧學習如何建立基本的Web網站和命令列應用程式。‧安全地處理電腦上的檔案(包含加密檔案和純文字檔案)。
Eric A.Mann 擔任軟體工程師已近二十年,是一位經驗豐富的 Web 開發人員,擁有從JavaScript到Scala、Ruby,乃至PHP和C#等多種語言的開發經驗。早期曾為財星商業雜誌500大公司和新創公司建立大型專案。Eric也經常發表軟體架構的演講,同時也是《php[architect]》雜誌的撰稿人之一。在近十年來的大部分時間裡,他一直在建立各種形狀和大小的網站和應用程式,並繼續嘗試新技術和新工藝。
全球超過 75% 的網站使用 PHP 撰寫。隨著網際網路規模的擴大,PHP 程式碼的數量也相當龐大。然而,必須承認,並非所有 PHP 程式碼都是優質的。任何有 PHP 經驗的開發者都了解這門語言的優勢、劣勢以及可能引發的混亂。PHP 因為易學易用,成為主流選擇,但也讓許多開發人員在撰寫程式碼時容易犯錯。相較於強制執行嚴格型別和記憶體管理的完全編譯語言,PHP作為解釋性語言,對程式編譯錯誤的容忍度相當高。許多情況下,即使出現嚴重錯誤,PHP也僅是跳出警告並繼續執行;對於初學者來說,這樣的寬容設計有助於學習,因為小錯誤不會立刻導致應用程式中斷。然而,這種寬容的特性也帶來弊端,導致「糟糕的程式碼」也能順利發佈和運行,讓初學者在不知不覺中重複使用不良的程式碼。本書的目的是幫助您了解如何避免常見錯誤,避免重複使用不良程式碼。透過建立一套適用於所有開發者的模式與範例,協助解決PHP中的常見問題。本書中的技巧能讓您迅速識別並處理複雜問題,省去重新發明輪子或複製那些需經額外研究才能發現的『壞程式碼』。
前言第一章 變數1.1 定義常數1.2 建立可變變數1.3 直接交換變數第二章 運算子2.1 使用三元運算符號代替 If-Else 區塊2.2 合併潛在的 null 值2.3 比較相同的數值2.4 使用三路比較運算對數值進行排序2.5 使用運算符號抑制診斷錯誤2.6 整數內的位元比較第三章 函數3.1 存取函數參數3.2 設定函數的預設參數3.3 使用命名的函數參數3.4 強制執行函數引數及回傳型別3.5 定義具有可變引數數量的函數3.6 回傳多個數值3.7 從函數內存取全域變數3.8 跨函數呼叫來管理狀態值3.9 定義動態函數3.10 將函數作為參數傳遞給其他函數3.11 使用簡潔的函數定義(箭頭函數)3.12 建立沒有回傳值的函數3.13 建立不回傳的函數第四章 字串4.1 存取字串中的子字串4.2 從字串中抓取子字串4.3 替換部分字串4.4 依序處理字串中的每一個位元4.5 產生隨機字串4.6 在字串中插入變數4.7 將多個字串連接在一起4.8 維護儲存在字串中的二進制資料第五章 數字5.1 驗證變數中的數字5.2 浮點數的比較5.3 浮點數的四捨五入5.4 產生真正的隨機變數5.5 產生可預測的隨機變數5.6 依照權重產生隨機變數5.7 對數的計算5.8 指數的計算5.9 將數字格式化為字串5.10 處理非常大或非常小的數字5.11 在不同進制之間轉換數字第六章 日期和時間6.1 取得目前日期和時間6.2 格式化日期和時間6.3 將日期和時間轉換為 Unix 時間戳記6.4 從 Unix 時間戳記轉換為日期和時間6.5 計算兩個日期之間的差值6.6 從任意字串中解析日期和時間6.7 驗證日期6.8 增加或減去日期6.9 計算跨時區的時間第七章 陣列7.1 將陣列中的每個鍵值關聯多個元素7.2 透過數字範圍來初始化陣列7.3 疊代處理陣列中的項目7.4 從關聯陣列與數值陣列中刪除元素7.5 修改陣列的大小7.6 將一個陣列附加到另一個陣列7.7 從現有陣列的片段來建立陣列7.8 陣列和字串之間的轉換7.9 反轉陣列7.10 對陣列進行排序7.11 根據函數對陣列進行排序7.12 隨機打亂陣列中的元素7.13 將函數套用於陣列中的每個元素7.14 將陣列簡化為單一數值7.15 透過重複疊代來替換無限或龐大的陣列第八章 類別和物件8.1 從自訂類別實體化物件8.2 建構物件來定義預設數值8.3 在類別中定義唯讀屬性8.4 對不再需要的物件進行解構清理8.5 使用神奇方法所提供的動態屬性8.6 擴充類別來定義附加的功能8.7 強制類別表現出特定行為8.8 建立抽象基礎類別8.9 防止修改類別及方法8.10 clone(複製)物件8.11 定義靜態屬性與方法8.12 列舉在物件中的私有屬性或方法8.13 在類別之間重複使用任意程式碼第九章 安全性與加密9.1 過濾、驗證和清理使用者輸入9.2 將敏感憑證排除在應用程式碼之外9.3 雜湊和驗證密碼9.4 加密與解密資料9.5 在檔案中儲存加密資料9.6 對要傳送到另一個應用程式的資料進行加密簽章9.7 驗證加密簽章第十章 檔案的處理10.1 建立或開啟本機檔案10.2 將檔案讀入字串10.3 讀取檔案的特定片段10.4 直接修改檔案10.5 同時寫入多個檔案10.6 鎖定檔案以防止其他行程存取或修改第十一章 串流11.1 資料串流與暫存檔案之間的傳輸11.2 從 PHP 輸入串流讀取資料11.3 寫入 PHP 輸出串流11.4 從一個串流讀取並寫入另一個串流11.5 將不同處理串流的方法組合在一起11.6 撰寫自訂串流包裝器第十二章 錯誤處理12.1 尋找並修復語法解析錯誤12.2 建立和處理自訂例外12.3 向終端使用者隱藏錯誤訊息12.4 使用自訂錯誤處理程式12.5 將錯誤記錄到外部串流第十三章 除錯和測試13.1 使用除錯擴充工具13.2 撰寫單元測試13.3 自動化單元測試13.4 使用靜態程式碼分析13.5 記錄除錯資訊13.6 將變數內容轉換為字串13.7 使用內建的 Web 伺服器功能快速執行應用程式13.8 使用 git-bisect 版本控制專案進行迴歸的單元測試第十四章 效能調校14.1 函數執行時間的評估14.2 對程式的效能進行基準測試14.3 使用操作碼快取加速應用程式第十五章 套件與擴充功能15.1 定義 Composer 專案15.2 尋找 Composer 套件15.3 安裝與更新 Composer 軟體套件15.4 安裝本機 PHP 擴充功能第十六章 資料庫16.1 關聯式資料庫16.2 鍵值資料庫16.3 圖形資料庫16.4 文件資料庫16.5 連線到 SQLite 資料庫16.6 使用 PDO 連接到外部資料庫16.7 清理使用者輸入來進行資料庫的查詢16.8 模擬資料來進行資料庫的整合測試16.9 使用 Eloquent ORM 查詢 SQL 資料庫第十七章 非同步 PHP17.1 從遠端 API 非同步取得資料17.2 等待多個非同步操作的結果17.3 中斷某個操作並執行另一個操作17.4 在單獨的執行緒中執行程式碼17.5 在單獨的執行緒之間發送和接收訊息17.6 使用 Fiber 管理串流過程中的內容第十八章 PHP 命令列18.1 解析程式引數18.2 讀取互動式的使用者輸入18.3 替控制台的輸出文字添加顏色18.4 使用 Symfony 來建立命令列應用程式18.5 啟動 PHP 原生的 REPL 操作模式
Laravel啟動與運行 第三版 CSS 大全 第五版 PHP & MYSQL:網頁伺服器程式開發之道
購買紙本書