發表於2024-12-24
在Web開發領域,PHP因免費開源、語法簡單屬於類C風格語言,具有良好的跨平颱性而受到廣大業內人士的支持。經過多個預發布版本, PHP 5.0在2004年7月13日發布。該版本使用Zend引擎Ⅱ,並且加入瞭新功能,完全支持麵嚮對象。2015年12月3日,PHP 7.0.0 GA發布,性能較PHP 5.6提升瞭兩倍,新增瞭一些操作符和函數的返迴類型聲明,也增加瞭對匿名類的支持等。關於PHP 7的討論在網上也逐漸展開。不過到目前為止,國內有關專門介紹PHP 7應用開發的書籍還很少,本書的目的就是對現有的PHP 7技術進行一個匯總,書中內容是筆者在PHP 7學習和實際工作項目中的心得體會和係統總結,希望能夠幫助PHP 7學習者更好地瞭解其新特性,並應用於實際開發中。
本書由專業的PHP開發工程師精心編撰,全書循序漸進地介紹瞭PHP 7編程的基礎知識與實戰開發技能,初學PHP開發的讀者通過學習本書能夠熟練地進行PHP應用程序開發。本書的核心內容包括:PHP基礎語法、函數、麵嚮對象編程、PHP類、常見的設計模式、正則錶達式、PHP操作圖像和文件、MVC架構思想、ThinkPHP框架、NoSQL與MySQL等。另外,還介紹瞭當前熱點的O2O網站開發和App後颱開發的關鍵技術,有助於讀者掌握PHP在現代Web軟件開發領域中的應用。
本書是作者在PHP 7學習及實際工作項目中的心得體會和係統總結,內容豐富、實用性強。適閤PHP 7開發新手、使用PHP進行各類開發的程序員,也適閤作為企業內部培訓、培訓機構和大專院校的教學參考書。
陳小龍,奇虎360軟件工程師,是國內較早研究微信開發和PHP 7技術的一批人;同時為PHP7plus.cn站長、plus技術社群和plus自媒體聯盟發起者、知乎專欄作者、51CTO認證講師,著有圖書《微信公眾平颱開發實戰與應用案例》。
第1章 走進PHP的世界 1
1.1 快速認識PHP 2
1.1.1 PHP語言的的優勢 2
1.1.2 PHP的運行機製和原理 3
1.1.3 關於PHP 7 5
1.2 HTML和CSS 6
1.2.1 HTML元素 6
1.2.2 HTML常用標簽 7
1.2.3 CSS語法 11
1.2.4 CSS選擇器 12
1.2.5 CSS樣式 14
1.2.6 CSS 框模型 16
1.3 JavaScript簡介 18
1.3.1 JavaScript數據類型 18
1.3.2 JavaScript基本語句 21
1.3.3 JavaScript函數和事件 26
1.3.4 常用的JavaScript框架和庫 29
1.4 PHP開發環境搭建 30
1.5 代碼編輯器 31
1.6 編寫第一個PHP程序 32
第2章 PHP語言基礎 33
2.1 PHP的數據類型 34
2.2 運算符 37
2.3 變量 42
2.4 常量 45
2.4.1 常量的聲明 45
2.4.2 預定義常量 46
第3章 流程控製語句 48
3.1 條件控製語句 49
3.1.1 if條件控製語句 49
3.1.2 switch分支語句 50
3.2 循環控製語句 51
3.2.1 while循環 51
3.2.2 do while循環 52
3.2.3 for循環 53
3.2.4 foreach循環 54
3.3 跳轉語句 56
3.3.1 break語句 56
3.3.2 continue語句 56
3.3.3 goto語句 56
3.4 包含語句 57
3.4.1 include語句 57
3.4.2 include_once 語句 59
3.4.3 require語句 60
3.4.4 require_once語句 60
第4章 函數 61
4.1 函數的使用 62
4.2 函數的參數 62
4.2.1 參數傳遞方式 62
4.2.2 參數類型聲明 64
4.2.3 可變參數數量 66
4.3 函數返迴值 67
4.4 可變函數 68
4.5 內置函數 69
4.6 匿名函數 69
4.7 遞歸與迭代 71
第5章 字符串 73
5.1 單引號和雙引號的區彆 74
5.2 字符串連接符 74
5.3 字符串操作 75
5.3.1 改變字符串大小寫 75
5.3.2 查找字符串 75
5.3.3 替換字符串 78
5.3.4 截取字符串 79
5.3.5 去除字符串首尾空格和特殊字符 79
5.3.6 計算字符串的長度 80
5.3.7 轉義和還原字符串 80
5.3.8 重復一個字符串 81
5.3.9 隨機打亂字符串 82
5.3.10 分割字符串 82
第6章 數組 83
6.1 使用數組 84
6.1.1 數組類型 84
6.1.2 創建數組 85
6.2 二維數組和多維數組 87
6.2.1 二維數組 87
6.2.2 多維數組 87
6.3 數組操作 88
6.3.1 檢查數組中是否存在某個值 88
6.3.2 數組轉換為字符串 88
6.3.3 計算數組中的單元數目 89
6.3.4 數組當前單元和數組指針 89
6.3.5 數組中的鍵名和值 90
6.3.6 填補數組 93
6.3.7 從數組中隨機取齣一個或多個單元 97
6.3.8 數組排序與打亂數組 97
6.3.9 遍曆數組 100
6.3.10 數組的拆分與閤並 104
6.3.11 增加/刪除數組中的元素 106
6.3.12 其他常用數組函數 108
6.4 係統預定義數組 112
6.4.1 $_SERVER 112
6.4.2 $_GET和$_POST數組 114
6.4.3 $_FILES數組 115
6.4.4 $_SESSION和$_COOKIE數組 116
6.4.5 $_REQUEST[]數組 116
第7章 時間與日期 117
7.1 設置時區 118
7.1.1 在配置文件中設置 118
7.1.2 通過date_default_timezone_set函數在文件中設置 118
7.2 獲取當前時間 118
7.3 常用時間處理方法 121
7.3.1 格式化時間顯示 121
7.3.2 計算兩個日期間的時間差 124
7.3.3 從字符串中解析日期時間 124
7.3.4 日期的加減運算 125
7.4 驗證日期 125
第8章 錶單 127
8.1 錶單的種類 128
8.1.1 文本域及其類型 128
8.1.2 其他錶單類型 131
8.2 get和post方法 133
8.2.1 獲取錶單值 134
8.2.2 處理上傳文件 134
第9章 類與對象 137
9.1 什麼是類 138
9.1.1 聲明一個類 138
9.1.2 實例化一個類 139
9.1.3 訪問類中成員 139
9.1.4 靜態屬性和靜態方法 141
9.1.5 構造方法和析構方法 142
9.2 封裝和繼承特性 143
9.2.1 封裝特性 144
9.2.2 繼承特性 145
9.2.3 通過繼承實現多態 146
9.3 魔術方法 147
9.3.1 __set()和__get()方法 147
9.3.2 __isset()和__unset()方法 148
9.3.3 __call() 和__ toString() 方法 150
9.4 自動加載 151
9.4.1 __autoload() 方法 151
9.4.2 spl_autoload_register() 函數 152
9.5 抽象類和接口 153
9.5.1 抽象類 153
9.5.2 接口 154
9.6 類中的關鍵字 156
9.6.1 final關鍵字 157
9.6.2 clone 關鍵字 157
9.6.3 instanceof 關鍵字 158
9.6.4 “==”和“===” 159
第10章 正則錶達式 160
10.1 正則錶達式的用途 161
10.2 正則錶達式的語法 161
10.2.1 正則錶達式中的元素 161
10.2.2 替換和子錶達式 165
10.2.3 反嚮引用 166
10.3 在PHP中使用正則錶達式 167
第9章 類與對象
麵嚮對象編程(Object Oriented Programming,OOP)是一種被很多語言廣泛支持的編程模式,有彆於之前的麵嚮過程編程。麵嚮對象編程的思想是把具有相似特性的事物抽象成類,通過對類的屬性和方法的定義實現代碼共用。其將實現某一特定功能的代碼部分進行封裝,這樣可被多處調用,而且封裝的粒度越細小被重用的概率越大。麵嚮對象編程的繼承性和多態性也提高瞭代碼的復用度。總之,麵嚮對象編程充分地體現軟件編程中的“高內聚,低耦閤”的思想。
9.1 什麼是類
麵嚮對象編程就是要把需要解決的問題抽象為類。在現實生活中我們可以找到很多種這樣的例子,比如可以抽象齣這個世界上的一個物種為人類,人類具有身高、體重、腰圍等屬性,同時人類還可以執行一些動作,比如行走、吃飯、跳躍等。同理,在編程中,抽象齣的類也具有這樣的屬性和動作,不過在類中我們把這種“動作”稱作類的方法。比如常用的數據庫連接類,在這個類中一般會包含數據庫類型、數據庫的HOST、數據庫用戶名、密碼等屬性,同時也包含一些數據庫操作的方法,如插入、更新、查詢、刪除數據等。數據庫連接類的示例圖如圖9-1所示。
圖9-1 數據庫連接類
9.1.1 聲明一個類
類在使用前需要聲明,聲明一個類使用關鍵詞class,比如聲明一個數據庫連接類,例如:
class conn{
private $dbtype = 'mysql';
private $host = '127.0.0.1';
private $username = 'root';
private $password = '123456';
private $pre = 'zwt_';
public function insert(){}
public function update(){}
public function delete(){}
public function select(){}
}
?>
以上代碼聲明瞭一個包含數據庫連接屬性和操作方法的類conn,其中的private和public是定義屬性和方法的關鍵詞,其規定瞭被定義的屬性和方法可在什麼地方被訪問。
$dbtype、$host、$username、$password、$pre是該類中的屬性,function 定義類中的方法。
9.1.2 實例化一個類
在聲明一個類之後,要使用類中的方法,一般需要先實例化一個類,這個實例便是類中的對象。創建一個類的實例使用關鍵詞new。示例如下:
class conn{
private $dbtype = 'mysql';
private $host = '127.0.0.1';
private $username = 'root';
private $password = '123456';
private $pre = 'zwt_';
public function insert(){}
public function update(){}
public function delete(){}
public function select(){}
}
$connObj = new conn();
var_dump($connObj);
?>
本例創建瞭類conn的一個實例。如果是在類內部創建實例,可以使用new self來創建新對象。一個類可以實例化多個對象,每個對象都是獨立的個體,這些實例化的對象擁有類中定義的全部屬性和方法。當對其中一個對象進行操作時,比如改變該對象的屬性等,不會影響其他對象。
9.1.3 訪問類中成員
實例化一個類後,要訪問類中的成員,可使用符號“->”,請看下麵的示例:
class conn{
public $dbtype = 'mysql';
private $pre = 'zwt_';
public function test(){
echo "test";
}
}
$obj = new conn();
$obj->test();
echo $obj->dbtype;
?>
該例中使用“->”訪問類conn中的test對象。
在對象方法執行的時候會自動定義一個$this的特殊變量,錶示對象本身的引用。通過$this->形式可引用該對象的方法和屬性,其作用就是完成對象內部成員之間的訪問,示例如下:
class conn{
public $dbtype = 'mysql';
public function test(){
echo $this->getDbtype();
}
public function getDbtype(){
echo $this->dbtype;
}
}
$obj = new conn();
$obj->test();
?>
訪問對象的成員有時還可使用“::”符號。使用該符號一般有以下3種情況:
? parent::父類成員,這種形式的訪問可調用父類的成員變量常量和方法。
? self::自身成員,這種形式的訪問可調用當前類中的靜態成員和常量。
? 類名::成員,這種形式的訪問可調用類中的變量常量和方法。
“::”符號的使用示例如下:
class conn{
public $dbtype = 'mysql';
const HOST = '127.0.0.1'; // 在類中使用const定義常量HOST
public function test(){
echo "test";
//echo $this->getDbtype(); //靜態方法getDbtype()不能在類內部以$this->的形式訪問
}
public function test1(){
echo self::HOST; // self訪問常量HOST
self::getDbtype(); // self訪問靜態方法getDtype()
}
public static function getDbtype(){ //使用static修飾的方法稱為靜態方法
echo "mysql";
}
}
$obj = new conn();
$obj->test1();
conn::test(); // 沒有實例化類,使用“::”訪問類中的方法
?>
本示例運行結果為:
127.0.0.1mysqltest
9.1.4 靜態屬性和靜態方法
在PHP中,通過static關鍵詞修飾的成員屬性和方法稱為靜態屬性和靜態方法。靜態屬性和靜態方法可在不被實例化的情況下直接使用。
1. 靜態屬性
在類中,有一個靜態屬性的概念。和常規屬性不一樣的是,靜態屬性屬於類本身,而不屬於任何實例。因此其也可稱為類屬性,以便和對象的屬性區分開來。靜態屬性使用 static 關鍵詞定義,在類外部可使用“類名::靜態屬性名”的方式訪問,在類內部可使用“self::靜態屬性名”的方式訪問。
示例如下:
class myclass{
static $staticVal = 0;
function getStatic(){
echo self::$staticVal;
self::$staticVal++;
}
}
echo myclass::$staticVal; // 輸齣 0
$obj = new myclass();
$obj->getStatic(); // 輸齣 0
echo myclass::$staticVal; // 輸齣 1
?>
執行以上程序的結果為:
001
可見在實例化的對象中改變瞭靜態屬性 $staticVal 的值,再次訪問類屬性時其值已被改變。
2. 靜態方法
和靜態屬性相似,使用static修飾的方法稱為靜態方法,也可在不被實例化的情況下使用,其屬於類而不是被限製到任何一個特定的對象實例。因此 $this 在靜態方法中不可使用,但可在對象實例中通過“$this->靜態方法名”的形式調用靜態方法,在類內部需要使用“self::靜態方法名”的形式訪問。示例代碼如下:
class myclass{
static $staticVal = 0;
public $val = 100;
static function getStaticVal(){
echo self::$staticVal;
}
前言
編寫本書的目的
在Web開發領域,PHP因免費開源、語法簡單屬於類C風格語言,具有良好的跨平颱性而受到廣大業內人士的支持。經過多個預發布版本,PHP5.0在2004年7月13日發布。該版本使用Zend引擎Ⅱ,並且加入瞭新功能,完全支持麵嚮對象。2015年12月3日,PHP7.0.0GA發布,性能較PHP5.6提升瞭兩倍,新增瞭一些操作符和函數的返迴類型聲明,也增加瞭對匿名類的支持等。關於PHP7的討論在網上也逐漸展開。不過到目前為止,國內有關專門介紹PHP7應用開發的書籍還很少,本書的目的就是對現有的PHP7技術進行一個匯總,書中內容是筆者在PHP7學習和實際工作項目中的心得體會和係統總結,希望能夠幫助PHP7學習者更好地瞭解其新特性,並應用於實際開發中。
本書內容簡介
本書共分22章,從最基礎的HTML知識和PHP開發環境的搭建開始,逐漸深入介紹PHP7的相關特性和開發實踐。
第1章介紹PHP的運行機製和PHP7的新特性,講解PHP程序員必須要學習的HTML、CSS和JavaScript知識,學習搭建PHP的開發環境,並編寫第一個PHP程序。
第2章介紹PHP的基礎知識,包括PHP的數據類型、運算符、變量和常量的知識。
第3章講解PHP7中的各種常用流程控 PHP7實踐指南:O2O網站與App後颱開發 下載 mobi epub pdf txt 電子書 格式
PHP7實踐指南:O2O網站與App後颱開發 下載 mobi pdf epub txt 電子書 格式 2024
PHP7實踐指南:O2O網站與App後颱開發 下載 mobi epub pdf 電子書不錯不錯不錯不錯不錯不錯不錯不錯
評分此用戶未填寫評價內容
評分書不錯,買來作為技術儲備,以後有時間瞭慢慢看。。。。。。。。。。。。。。
評分很不錯的一本書,知識很有使用價值。。
評分買瞭有一個星期瞭,質量沒問題
評分好多印刷錯誤,跟盜版書一樣,還自營
評分感覺入門挺不錯的一本書
評分一直沒看,前兩天看瞭幾頁
評分不錯不錯不錯不錯不錯
PHP7實踐指南:O2O網站與App後颱開發 mobi epub pdf txt 電子書 格式下載 2024