




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
《PHP動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)(第2版)》全套可編輯PPT課件CONTENTS目錄項(xiàng)目1配置PHP開(kāi)發(fā)環(huán)境01項(xiàng)目2PHP語(yǔ)言基礎(chǔ)02項(xiàng)目3PHP數(shù)據(jù)處理03項(xiàng)目4PHP面向?qū)ο缶幊?4項(xiàng)目5構(gòu)建PHP交互網(wǎng)頁(yè)05項(xiàng)目6PHP文件處理06項(xiàng)目7PHP圖像處理07項(xiàng)目8MySQL數(shù)據(jù)庫(kù)管理08項(xiàng)目9通過(guò)PHP訪問(wèn)MySQL09項(xiàng)目10開(kāi)發(fā)新聞發(fā)布系統(tǒng)10項(xiàng)目1配置PHP開(kāi)發(fā)環(huán)境項(xiàng)目目標(biāo)了解phpStudy及其組成掌握phpStudy的安裝方法掌握配置Apache服務(wù)器的方法掌握配置MySQL服務(wù)器的方法掌握在PhpStorm中創(chuàng)建PHP項(xiàng)目的方法CONTENTS目錄任務(wù)1.1安裝phpStudy01任務(wù)1.2配置phpStudy02任務(wù)1.3配置PhpStorm03任務(wù)1.1安裝phpStudy1.1.1PHP開(kāi)發(fā)環(huán)境的組成1.Apache服務(wù)器Apache是Apache軟件基金會(huì)開(kāi)發(fā)的開(kāi)放源碼Web服務(wù)器。Apache是最流行的Web服務(wù)器軟件之一,占據(jù)了互聯(lián)網(wǎng)應(yīng)用服務(wù)器70%以上的份額。它可跨平臺(tái)使用,幾乎運(yùn)行在所有計(jì)算機(jī)平臺(tái)上;安全性好,功能強(qiáng)大,性能穩(wěn)定,可免費(fèi)使用。2.PHP語(yǔ)言PHP是一種通用開(kāi)源腳本語(yǔ)言。PHP在語(yǔ)法上吸收了C、Java和Perl語(yǔ)言的特點(diǎn),易于學(xué)習(xí),廣泛應(yīng)用于Web開(kāi)發(fā)領(lǐng)域。PHP是將程序嵌入到HTML文檔中執(zhí)行的,執(zhí)行效率高。3.MySQL數(shù)據(jù)庫(kù)MySQL是一款最流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)應(yīng)用軟件,由瑞典MySQLAB公司開(kāi)發(fā),目前屬于Oracle旗下產(chǎn)品。4.數(shù)據(jù)庫(kù)管理工具phpMyAdminphpMyAdmin是一個(gè)用PHP編寫的MySQL數(shù)據(jù)庫(kù)管理工具,基于Web方式部署在網(wǎng)站服務(wù)器上。5.PHP代碼優(yōu)化工具ZendOptimizerZendOptimizer(簡(jiǎn)稱ZO)用優(yōu)化代碼的方法來(lái)提高PHP應(yīng)用程序的執(zhí)行速度。任務(wù)1.1安裝phpStudy1.1.2安裝phpStudyPHP開(kāi)發(fā)環(huán)境由多個(gè)組件構(gòu)成。要配置PHP開(kāi)發(fā)環(huán)境,就需要對(duì)這些組件逐一進(jìn)行安裝和配置,按照環(huán)境搭建方法一步一步地按照流程操作,整個(gè)過(guò)程不僅煩瑣,而且很容易出錯(cuò),還會(huì)帶來(lái)安全隱患。為了簡(jiǎn)化這個(gè)過(guò)程,建議選擇一款合適的PHP環(huán)境部署套件一鍵完成配置。常用的PHP環(huán)境部署套件有phpStudy、WampServer、upupw、Apmserv以及phpnow等。本書中選擇phpStudy作為PHP環(huán)境部署套件。phpStudy軟件版本很齊全,它支持自定義PHP版本,適合所有場(chǎng)景;軟件功能強(qiáng)大,同時(shí)支持IIS、Apache和Nginx服務(wù)器,并且擁有支持Linux的版本;軟件包經(jīng)過(guò)精簡(jiǎn)壓縮,程序綠色小巧,并且支持個(gè)人PC,很容易上手,適合學(xué)習(xí)使用。1.軟件下載2.軟件安裝任務(wù)1.1安裝phpStudy1.1.2運(yùn)行phpStudyphpStudy的主程序?yàn)槲募hpstudy_pro.exe。完成phpStudy安裝后會(huì)在Windows桌面上為該主程序創(chuàng)建一個(gè)快捷方式,通過(guò)雙擊它即可打開(kāi)phpStudy集成環(huán)境的控制面板,并自動(dòng)進(jìn)入其首頁(yè)。任務(wù)1.2配置phpStudy1.2.1設(shè)置啟動(dòng)選項(xiàng)1.設(shè)置一鍵啟動(dòng)選項(xiàng)在控制面板首頁(yè)上,根據(jù)需要可以在“套件”下方分別啟動(dòng)、停止或重啟Apache和MySQL服務(wù),也可以在“一鍵啟動(dòng)”下方單擊“WNMP”右側(cè)的操作按鈕一鍵啟動(dòng)事先設(shè)定的服務(wù)。一鍵啟動(dòng)的內(nèi)容為Apache、NgInx或IIS與MySQL不同版本的組合,可以根據(jù)需要進(jìn)行設(shè)置。2.設(shè)置開(kāi)機(jī)自啟選項(xiàng)通過(guò)設(shè)置開(kāi)機(jī)自啟選項(xiàng)可以指定啟動(dòng)Windows后自動(dòng)運(yùn)行的服務(wù)。任務(wù)1.2配置phpStudy1.2.2切換PHP版本使用phpStudy配置PHP開(kāi)發(fā)環(huán)境時(shí),可以根據(jù)需要來(lái)切換PHP的版本。(1)打開(kāi)phpStudy控制面板,在左側(cè)導(dǎo)航欄中單擊“網(wǎng)站”。(2)在右側(cè)內(nèi)容窗格中單擊“管理”按鈕,然后從彈出菜單中展開(kāi)“php版本”子菜單并從中選擇所需要的PHP版本。任務(wù)1.2配置phpStudy1.2.3站點(diǎn)域名管理安裝phpStudy后,默認(rèn)的站點(diǎn)主目錄為phpStudy安裝目錄中的WWW文件夾,默認(rèn)的端口號(hào)為80。也可以利用phpStudy控制面板更改這些默認(rèn)設(shè)置,具體操作方法如下。(1)打開(kāi)phpStudy控制面板,在左側(cè)導(dǎo)航欄中單擊“網(wǎng)站”。(2)在右側(cè)內(nèi)容窗格中單擊“管理”按鈕,然后從彈出菜單中選擇“修改”命令。(3)當(dāng)彈出“站點(diǎn)域名設(shè)置”對(duì)話框時(shí),在“基本配置”選項(xiàng)卡中輸入網(wǎng)站的域名、根目錄和端口,設(shè)置網(wǎng)站的根目錄路徑,選擇要使用的PHP版本。如果不填寫端口,則默認(rèn)為80。(4)如果需要,可以選擇“高級(jí)配置”、“安全配置”、“錯(cuò)誤頁(yè)面”、“偽靜態(tài)”或“其他”選項(xiàng)卡,然后對(duì)相關(guān)選項(xiàng)進(jìn)行設(shè)置。(5)完成設(shè)置后,單擊“確定”按鈕。任務(wù)1.2配置phpStudy1.2.4創(chuàng)建虛擬目錄通過(guò)站點(diǎn)發(fā)布信息時(shí),通常應(yīng)將相關(guān)文件保存在站點(diǎn)主目錄中。如果希望在主目錄之外的其他位置保存文件,則應(yīng)在站點(diǎn)中創(chuàng)建虛擬目錄。創(chuàng)建虛擬目錄的方法:打開(kāi)Apache配置文件httpd.conf,然后添加一條Alias指令。Alias指令用于映射指向文件系統(tǒng)某個(gè)物理目錄的URL,也就是在Apache網(wǎng)站中創(chuàng)建一個(gè)虛擬目錄。語(yǔ)法格式如下:AliasURL-pathfile-path|directory-path其中參數(shù)URL-path表示虛擬路徑,參數(shù)file-path或directory-path表示本地文件系統(tǒng)中的物理路徑。舉例Alias/demo/"D:/phpdocs/"<Directory"D:/phpdocs/">Orderallow,denyAllowfromall</Directory>任務(wù)1.2配置phpStudy1.2.5配置MySQL服務(wù)器完成phpStudy安裝后,可以對(duì)MySQL服務(wù)器的root賬號(hào)密碼進(jìn)行修改,也可以創(chuàng)建新的用戶數(shù)據(jù)庫(kù)。1.root密碼修改root為MySQL最高權(quán)限賬號(hào),其密碼默認(rèn)為隨機(jī)密碼。使用MySQL之前,首先需要對(duì)root賬號(hào)的密碼進(jìn)行修改。2.創(chuàng)建用戶數(shù)據(jù)庫(kù)使用phpStudy控制面板可以創(chuàng)建新的用戶數(shù)據(jù)庫(kù),具體操作步驟如下。(1)打開(kāi)phpStudy控制面板。(2)在左側(cè)導(dǎo)航欄單擊“數(shù)據(jù)庫(kù)”,然后在右側(cè)內(nèi)容窗格中單擊“創(chuàng)建數(shù)據(jù)庫(kù)”按鈕。(3)在彈出的“數(shù)據(jù)庫(kù)”對(duì)話框中,輸入數(shù)據(jù)庫(kù)名稱、用戶名和密碼,然后單擊“確認(rèn)”按鈕。任務(wù)1.3配置PhpStorm1.3.1PhpStorm簡(jiǎn)介PhpStorm是JetBrains公司出品的一款PHP集成開(kāi)發(fā)工具,旨在提高PHP應(yīng)用開(kāi)發(fā)的效率,完美支持各種主流框架,包括Symfony、Drupal、WordPress、ZendFramework、Laravel、Magento、Joomla!以及CakePHP等。PhpStorm提供了全能的PHP工具,其內(nèi)建編輯器實(shí)際“了解”PHP代碼并且深刻理解其結(jié)構(gòu),支持所有PHP語(yǔ)言功能,提供了最優(yōu)秀的代碼補(bǔ)全、重構(gòu)、實(shí)時(shí)錯(cuò)誤預(yù)防等等功能,在開(kāi)發(fā)現(xiàn)代技術(shù)和維護(hù)遺留項(xiàng)目皆可完美適用。PhpStorm涵蓋當(dāng)今的各種前端開(kāi)發(fā)技術(shù),提供了重構(gòu)、調(diào)試和單元測(cè)試等功能,支持最先進(jìn)的前端開(kāi)發(fā)技術(shù),例如HTML5、CSS3、Sass、Less、Stylus、CoffeeScript、TypeScript、Emmet和JavaScript;通過(guò)實(shí)時(shí)編輯功能,可以立刻在瀏覽器中查看變更。PhpStorm提供了各種內(nèi)建開(kāi)發(fā)工具,通過(guò)集成版本控制系統(tǒng)、支持遠(yuǎn)程部署、數(shù)據(jù)庫(kù)/SQL、命令行工具、Vagrant、Composer、REST客戶端和多種其他工具,可以直接在IDE內(nèi)執(zhí)行很多日常任務(wù)。根據(jù)開(kāi)發(fā)平臺(tái)不同,PhpStorm分為Windows、macOS以及Linux版本。任務(wù)1.3配置PhpStorm1.3.2創(chuàng)建PHP項(xiàng)目(1)啟動(dòng)PhpStorm集成開(kāi)發(fā)環(huán)境。(2)選擇“文件”>“新建項(xiàng)目”命令。(3)當(dāng)出現(xiàn)“新建項(xiàng)目”對(duì)話框時(shí),在左側(cè)導(dǎo)航欄選擇“PHP空項(xiàng)目”,然后選擇或輸入新項(xiàng)目的存儲(chǔ)路徑,并單擊“創(chuàng)建”按鈕。提示:創(chuàng)建PHP項(xiàng)目時(shí),建議選擇Apache站點(diǎn)的主目錄或虛擬目錄作為存儲(chǔ)PHP項(xiàng)目的文件夾。此時(shí),將在PhpStorm中打開(kāi)新建項(xiàng)目。
任務(wù)1.3配置PhpStorm1.3.3配置PHP項(xiàng)目(1)選擇“文件”>“設(shè)置”命令。(2)當(dāng)出現(xiàn)“設(shè)置”對(duì)話框時(shí),在左側(cè)導(dǎo)航欄中單擊“PHP”,然后選擇PHP語(yǔ)言級(jí)別,并設(shè)置要使用CLI解釋器(以命令行模式運(yùn)行PHP程序),必要時(shí)還可以設(shè)置PHP包含路徑等選項(xiàng)。(3)在左側(cè)導(dǎo)航欄展開(kāi)“PHP”,單擊“服務(wù)器”,單擊加號(hào)按鈕,然后指定服務(wù)器名稱、主機(jī)地址、端口和調(diào)試器。(4)在左側(cè)導(dǎo)航欄中展開(kāi)“構(gòu)建、執(zhí)行、部署”,單擊“部署”,然后單擊加號(hào)按鈕,從彈出菜單中選擇一種服務(wù)器部署方式(學(xué)習(xí)PHP時(shí)建議選擇“本地或掛載文件夾”),并在彈出的對(duì)話框中輸入新建服務(wù)器名稱。(4)新建服務(wù)器之后,指定項(xiàng)目的本地文件夾(可以是Apache站點(diǎn)主目錄或虛擬目錄)和Web服務(wù)器URL(如http://localhost),然后單擊“確定”按鈕。提示:PhpStorm提供了一個(gè)內(nèi)置的Web服務(wù)器,不需要任何配置,但它只能提供靜態(tài)內(nèi)容。若要將該服務(wù)器與PHP文件一起使用,為項(xiàng)目指定一個(gè)本地PHP解釋器即可。任務(wù)1.3配置PhpStorm1.3.4創(chuàng)建PHP文件設(shè)置好PhpStorm項(xiàng)目選項(xiàng)后,即可根據(jù)需要在該項(xiàng)目中創(chuàng)建文件,既可以是HTML文件,也可以是PHP文件。PHP測(cè)試文檔代碼<?php$link=mysqli_connect("localhost","dba","123456","test");if(mysqli_connect_errno()){printf("連接MySQL數(shù)據(jù)庫(kù)失敗:%s\n",mysqli_connect_error());exit("退出運(yùn)行!");}else{printf("已成功創(chuàng)建數(shù)據(jù)庫(kù)連接!");}mysqli_close($link);?>項(xiàng)目2PHP語(yǔ)言基礎(chǔ)項(xiàng)目目標(biāo)了解PHP基本知識(shí)掌握PHP數(shù)據(jù)類型的用法掌握常量與變量的用法掌握運(yùn)算符與表達(dá)式的用法掌握流程控制語(yǔ)句的用法掌握函數(shù)的用法CONTENTS目錄任務(wù)2.1了解PHP基本知識(shí)01任務(wù)2.2使用PHP數(shù)據(jù)類型02任務(wù)2.3使用變量與常量03任務(wù)2.4使用運(yùn)算符與表達(dá)式04任務(wù)2.5使用流程控制語(yǔ)句05任務(wù)2.6使用函數(shù)06任務(wù)2.1了解PHP基本知識(shí)2.1.1PHP動(dòng)態(tài)網(wǎng)頁(yè)的組成(1)HTML標(biāo)簽。PHP文件中可以包含各種標(biāo)準(zhǔn)的HTML標(biāo)簽,通過(guò)這些HTML標(biāo)簽可以構(gòu)建HTML文檔結(jié)構(gòu)并添加各種內(nèi)容。(2)CSS樣式表。在PHP文件中可以包含CSS樣式定義,用于設(shè)置網(wǎng)頁(yè)的外觀。既可以在文檔首部通過(guò)<style>...</style>嵌入CSS樣式定義,也可以通過(guò)<link>標(biāo)記鏈接外部CSS樣式表文件,此外還可以在HTML標(biāo)簽中通過(guò)style屬性設(shè)置CSS樣式。(3)客戶端腳本。一般情況下可以在文檔首部通過(guò)<script>...</script>標(biāo)簽來(lái)添加基于JavaScript腳本語(yǔ)言的客戶端腳本程序,用于執(zhí)行表單數(shù)據(jù)檢查等操作。(4)PHP定界符。用于區(qū)分PHP代碼與其他內(nèi)容。(5)PHP代碼。符合PHP語(yǔ)法的各種語(yǔ)句,這些語(yǔ)句運(yùn)行于服務(wù)器端,用來(lái)執(zhí)行各種各樣的操作,例如收集表單數(shù)據(jù)、發(fā)送/接收Cookies以及訪問(wèn)數(shù)據(jù)庫(kù)等。任務(wù)2.1了解PHP基本知識(shí)2.1.2創(chuàng)建PHP代碼塊PHP定界符的4種形式(1)<?php...?>:這是PHP定界符的標(biāo)準(zhǔn)形式,建議讀者使用這種形式。在Dreamweaver中,可以利用插入面板快速插入PHP定界符,如圖2.1所示。(2)<?...?>:這是<?php...?>定界符的簡(jiǎn)寫形式。若要在文檔中使用這種類型的定界符,必須在配置文件php.ini中設(shè)置short_open_tag=On,然后重啟Apache服務(wù)器。(3)<%...%>:這是ASP語(yǔ)言的定界符。若要在PHP文件中使用這種形式的定界符,必須在配置文件php.ini中設(shè)置asp_tags=On,然后重啟Apache服務(wù)器。(4)<scriptlanguage="php">...</script>:這是一個(gè)HTML標(biāo)簽,其作用是指定由PHP語(yǔ)言引擎來(lái)解釋<script>與</script>標(biāo)記之間的腳本。在PHP代碼中,每個(gè)語(yǔ)句以分號(hào)結(jié)束;所有用戶自定義函數(shù)、類和關(guān)鍵詞(例如if、else、echo等)都對(duì)大小寫不敏感。在PHP代碼中,變量名均以$符號(hào)開(kāi)頭,而且所有變量都對(duì)大小寫敏感。例如,$username、$UserName和$USERNAME分別表示不同的變量。任務(wù)2.1了解PHP基本知識(shí)2.1.3編寫PHP注釋(1)C++風(fēng)格的單行注釋“//”//這是一行注釋文字(2)UNIXShell風(fēng)格的單行注釋“#”
#這是另一行注釋文字(3)C風(fēng)格的多行注釋“/*…*/”/*這是一行注釋文字這是另一行注釋文字*/任務(wù)2.1了解PHP基本知識(shí)2.1.4PHP與HTML混合編寫PHP語(yǔ)句在語(yǔ)法上是完全獨(dú)立的單元,但也可以使一個(gè)語(yǔ)句跨越兩個(gè)PHP代碼塊,并在這兩個(gè)代碼塊之間包含HTML代碼或其他非PHP代碼,此時(shí)PHP將直接輸出上一個(gè)結(jié)束標(biāo)記與下一個(gè)開(kāi)始標(biāo)記之間的任何非PHP代碼。當(dāng)需要輸出大量HTML內(nèi)容時(shí),退出PHP解析模式比使用echo()、print()或此類函數(shù)輸出這些內(nèi)容更為有效。2.1.5PHP與JavaScript協(xié)同工作PHP動(dòng)態(tài)網(wǎng)頁(yè)中可以同時(shí)包含PHP服務(wù)器端腳本和JavaScript客戶端腳本,而且這兩種腳本可以協(xié)同工作。當(dāng)訪問(wèn)者通過(guò)客戶端瀏覽器發(fā)出對(duì)某個(gè)PHP動(dòng)態(tài)網(wǎng)頁(yè)的請(qǐng)求后,由PHP在運(yùn)行中按照HTML的語(yǔ)法格式動(dòng)態(tài)生成頁(yè)面,并由服務(wù)器將整個(gè)頁(yè)面的數(shù)據(jù)發(fā)送給客戶端瀏覽器,該頁(yè)面中可能包含<script>標(biāo)簽,由此動(dòng)態(tài)生成由瀏覽器執(zhí)行的客戶端JavaScript腳本。使用PHP生成或操作客戶端腳本,可以增強(qiáng)其有效性。例如,可以編寫服務(wù)器端腳本,根據(jù)服務(wù)器特有的變量、用戶瀏覽器類型或HTTP請(qǐng)求參數(shù)對(duì)客戶端腳本加以組合。通過(guò)將PHP服務(wù)器端腳本語(yǔ)句包含在JavaScript客戶端腳本中,可以在請(qǐng)求時(shí)動(dòng)態(tài)初始化和更改客戶端腳本。任務(wù)2.2使用PHP數(shù)據(jù)類型2.2.1使用整型數(shù)整型數(shù)是集合Z={...,?2,?1,0,1,2,...}中的一個(gè)數(shù)。整型數(shù)包括正整數(shù)、負(fù)整數(shù)和零。一個(gè)整型數(shù)可以用10進(jìn)制,16進(jìn)制或8進(jìn)制符號(hào)表示,前面可以加上可選的符號(hào)(?或+)。若用8進(jìn)制,則必須在數(shù)字前加上前綴0;若用16進(jìn)制,則必須在數(shù)字前加上前綴0x。2.2.2使用浮點(diǎn)數(shù)浮點(diǎn)數(shù)也稱為雙精度數(shù)或?qū)崝?shù),其取值范圍和精度遠(yuǎn)遠(yuǎn)大于整型數(shù)。在32位操作系統(tǒng)中,浮點(diǎn)數(shù)的取值范圍為1.7E-308~1.7E+308(即1.7×10–308~1.7×10308)。浮點(diǎn)數(shù)可以用小數(shù)形式或科學(xué)計(jì)數(shù)法表示,在科學(xué)計(jì)數(shù)法中用E或e表示以10為底的冪。任務(wù)2.2使用PHP數(shù)據(jù)類型2.2.3使用字符串1.用單引號(hào)定義字符串用單引號(hào)(')括起字符串是表示一個(gè)字符串的最簡(jiǎn)單方法。在用單引號(hào)定義的字符串中,如果要表示一個(gè)單引號(hào),需要用反斜線(\)進(jìn)行轉(zhuǎn)義,即表示為“\'”;如果要在單引號(hào)之前或字符串結(jié)尾需要出現(xiàn)一個(gè)反斜線,則需要用兩個(gè)反斜線(\\)表示。如果試圖轉(zhuǎn)義任何其他字符,反斜線本身也會(huì)被顯示出來(lái)。與下面的兩種語(yǔ)法有所不同,在單引號(hào)字符串中出現(xiàn)的變量名不會(huì)被變量值替代,轉(zhuǎn)義序列也不會(huì)被解釋。2.用雙引號(hào)定義字符串如果用雙引號(hào)(")括起字符串,則會(huì)使PHP處理更多特殊字符的轉(zhuǎn)義序列。如果試圖轉(zhuǎn)義任何其他字符,反斜線本身也會(huì)被顯示出來(lái)。在用雙引號(hào)定義的字符串中,變量名會(huì)被變量值替代,有時(shí)使用花括號(hào)將變量名括起來(lái),以便于變量解析。3.用定界符定義字符串在處理長(zhǎng)字符串時(shí),也可以使用定界符語(yǔ)法(“<<<”)來(lái)定義字符串,即在“<<<”之后提供一個(gè)標(biāo)識(shí)符,接著是字符串的內(nèi)容,然后用同樣的標(biāo)識(shí)符來(lái)結(jié)束字符串。語(yǔ)法如下:<<<標(biāo)識(shí)符字符串內(nèi)容標(biāo)識(shí)符任務(wù)2.2使用PHP數(shù)據(jù)類型2.2.4使用布爾型布爾型用于表示真值,其取值可以是true或false。布爾值通常用于控制程序的執(zhí)行流程。如果要定義一個(gè)布爾值,可以使用關(guān)鍵字true或false,這兩個(gè)關(guān)鍵字是不區(qū)分大小寫的,因此也可以使用True和False,或者使用TRUE和FALSE。2.2.5使用特殊類型1.資源資源是一種特殊變量,保存了對(duì)外部資源的一個(gè)引用。資源是通過(guò)專門的函數(shù)來(lái)建立和使用的。由于資源類型變量保存為打開(kāi)文件、數(shù)據(jù)庫(kù)連接、圖形畫布區(qū)域等的特殊句柄,因此無(wú)法將其他類型的值轉(zhuǎn)換為資源。2.NULL特殊的NULL值表示一個(gè)變量沒(méi)有值。NULL類型只有一個(gè)值,就是大小寫敏感的關(guān)鍵字NULL。在下列情況下,一個(gè)變量被認(rèn)為是NULL:被賦值為NULL;尚未被賦值;通過(guò)調(diào)用函數(shù)unset()而被銷毀。任務(wù)2.2使用PHP數(shù)據(jù)類型2.2.6數(shù)據(jù)類型轉(zhuǎn)換1.強(qiáng)制類型轉(zhuǎn)換在PHP語(yǔ)言中,要將一個(gè)值轉(zhuǎn)換為其他數(shù)據(jù)類型,可以在該值前面添加一個(gè)目的類型關(guān)鍵字并通過(guò)圓括號(hào)將該關(guān)鍵字括起來(lái),語(yǔ)法如下:(type)value2.整型轉(zhuǎn)換如果要顯式示地將一個(gè)值轉(zhuǎn)換為整型,則可以使用(int)或(integer)進(jìn)行強(qiáng)制轉(zhuǎn)換,還可以通過(guò)函數(shù)intval將一個(gè)值轉(zhuǎn)換成整型。3.字符串轉(zhuǎn)換在PHP中,可以用(string)標(biāo)記或者strval函數(shù)將一個(gè)值轉(zhuǎn)換為字符串。當(dāng)某個(gè)表達(dá)式需要字符串時(shí),字符串的轉(zhuǎn)換會(huì)在表達(dá)式范圍內(nèi)自動(dòng)完成。4.布爾轉(zhuǎn)換如果要將一個(gè)值轉(zhuǎn)換成布爾值,可以用(bool)或(boolean)來(lái)強(qiáng)制轉(zhuǎn)換。不過(guò),在很多情況下不需要用強(qiáng)制轉(zhuǎn)換,因?yàn)楫?dāng)運(yùn)算符、函數(shù)或者流程控制需要一個(gè)布爾型參數(shù)時(shí),該值會(huì)被自動(dòng)轉(zhuǎn)換。5.測(cè)試數(shù)據(jù)類型在PHP語(yǔ)言中,可以使用gettype()函數(shù)來(lái)測(cè)試一個(gè)值的數(shù)據(jù)類型。任務(wù)2.3使用變量與常量2.3.1定義變量在PHP語(yǔ)言中規(guī)定,變量用一個(gè)美元符號(hào)($)后面跟變量名來(lái)表示,而且變量名是區(qū)分大小寫的。變量名與其他標(biāo)識(shí)符一樣都遵循相同的命名規(guī)則:一個(gè)有效的變量名由字母或下畫線開(kāi)頭,后面可以跟上任意數(shù)量的字母、數(shù)字或下畫線。命名變量通常與變量賦值操作一起進(jìn)行。在PHP中,可以在同一個(gè)變量中存儲(chǔ)不同類型的數(shù)據(jù)。例如,可能首先把一個(gè)整型數(shù)存儲(chǔ)在某個(gè)變量中,然后又把一個(gè)字符串存儲(chǔ)到該變量中。在實(shí)際應(yīng)用中,要了解變量值所屬的數(shù)據(jù)類型可以通過(guò)調(diào)用下列PHP函數(shù)來(lái)實(shí)現(xiàn)。(1)使用is_xxx()函數(shù)可以檢查變量或?qū)ο笫欠駥儆谀撤N數(shù)據(jù)類型,如果是則返回true,否則返回false。(2)使用gettype()函數(shù)測(cè)試一個(gè)變量的數(shù)據(jù)類型。(3)使用var_dump()函數(shù)顯示變量的相關(guān)信息。(4)使用print_r()函數(shù)顯示關(guān)于變量的易于理解的信息。任務(wù)2.3使用變量與常量2.3.2檢查變量是否被設(shè)置為了保證PHP代碼的安全運(yùn)行,使用變量之前最好檢查一下該變量是否已被定義。(1)empty()函數(shù)。用于檢查一個(gè)變量是否為空,語(yǔ)法如下:boolempty(mixed$var)如果參數(shù)var是非空或非零的值,則empty()函數(shù)返回false??兆址?")、0、"0"、NULL、false、array()、var$var;以及沒(méi)有任何屬性的對(duì)象都將被認(rèn)為是空的。如果參數(shù)var為空,則empty()函數(shù)返回true。(2)isset()函數(shù)。用于檢測(cè)變量是否被設(shè)置,語(yǔ)法如下:boolisset(mixed$var[,mixed$var[,$...]])如果參數(shù)var存在則返回true,否則返回false。isset()函數(shù)只能用于變量,傳遞任何其他參數(shù)都將造成解析錯(cuò)誤。如果使用isset()函數(shù)測(cè)試一個(gè)被設(shè)置成NULL的變量,將返回false。同時(shí)要注意,一個(gè)NULL字節(jié)("\0")并不等同于PHP的NULL常數(shù)。任務(wù)2.3使用變量與常量2.3.3可變變量與變量引用1.可變變量如果要?jiǎng)討B(tài)地創(chuàng)建一個(gè)變量名,則可以使用“可變變量”語(yǔ)法來(lái)實(shí)現(xiàn),即在其值要作為變量名使用的變量前面加一個(gè)美元符號(hào)$。如果在一個(gè)變量名前面放兩個(gè)美元符號(hào)$,則PHP將取右面變量的值作為變量名。例如:<?php$x="str";$$x="demo"; //$$x等效于$strecho"$x$str"; //輸出結(jié)果為“strdemo”?>2.變量引用在PHP中,通過(guò)變量引用可以使不同變量指向同一個(gè)內(nèi)容。如果要引用一個(gè)變量,則可以在該變量名前面加一個(gè)&符號(hào)。例如:<?php$a=1;$b=2;$a=&$b; //使$a和$b指向同一個(gè)變量$a=3; //改變$a時(shí)$b隨之而變echo"$a$b"; //輸出結(jié)果為“33”?>任務(wù)2.3使用變量與常量2.3.4使用常量1.自定義常量在PHP語(yǔ)言中,可以用define()函數(shù)來(lái)定義常量。語(yǔ)法如下:booldefine(string$name,mixed$value[,bool$case_insensitive=false])2.預(yù)定義常量__LINE__:返回文件中的當(dāng)前行號(hào)。__FILE__:返回文件的完整路徑和文件名。如果用在包含文件中,則返回包含文件名。__DIR__:文件所在的目錄。__FUNCTION__:返回函數(shù)名稱。__CLASS__:返回類的名稱。自PHP5起該常量返回該類被定義時(shí)的名稱(區(qū)分大小寫)。__METHOD__:返回該方法被定義時(shí)的名稱(區(qū)分大小寫)。__NAMESPACE__:當(dāng)前命名空間的名稱(大小寫敏感)。PHP_VERSION:返回PHP的版本號(hào)。PHP_OS:返回執(zhí)行PHP解析器的操作系統(tǒng)名稱。任務(wù)2.4使用運(yùn)算符與表達(dá)式2.4.1使用算術(shù)運(yùn)算符算術(shù)運(yùn)算符包括加號(hào)(+)、減號(hào)(-)、乘號(hào)(*)、除號(hào)(/)和取模運(yùn)算符(%),分別用于執(zhí)行加、減、乘、除以及求余數(shù)運(yùn)算。其中“-”除了作為減號(hào)使用外,也可以作為一元運(yùn)算符(負(fù)號(hào))使用,即對(duì)一個(gè)數(shù)取相反數(shù);除號(hào)(“/”)總是返回浮點(diǎn)數(shù),即使兩個(gè)運(yùn)算數(shù)是整數(shù)或由字符串轉(zhuǎn)換成的整數(shù)也是如此。當(dāng)被除數(shù)$a為負(fù)值時(shí),取模$a%$b的結(jié)果也是負(fù)值。2.4.2使用賦值運(yùn)算符基本的賦值運(yùn)算符是“=”,其作用是把右邊表達(dá)式的值賦給左邊的運(yùn)算數(shù)。還可以將其他運(yùn)算符與賦值運(yùn)算符組合起來(lái)構(gòu)成復(fù)合賦值運(yùn)算符。2.4.3使用遞增/遞減運(yùn)算符++$x(前加) 首先在$x的值上加1,然后返回$x$x++(后加) 首先返回$x,然后在$x的值上加1??$x(前減) 首先在$x的值上減1,然后返回$x$x??(后減) 首先返回$x,然后將$x的值減1任務(wù)2.4使用運(yùn)算符與表達(dá)式2.4.4使用字符串運(yùn)算符在PHP中有兩個(gè)字符串運(yùn)算符:一個(gè)是連接運(yùn)算符(“.”),它返回兩個(gè)操作數(shù)連接后的字符串;另一個(gè)是連接賦值運(yùn)算符(“.=”),它將右邊操作數(shù)附加到左邊的操作數(shù)之后。2.4.5使用位運(yùn)算符位運(yùn)算符允許對(duì)整型數(shù)中指定的位進(jìn)行置位,即對(duì)二進(jìn)制位從低位到高位對(duì)齊后進(jìn)行運(yùn)算。執(zhí)行位運(yùn)算時(shí)會(huì)將操作數(shù)轉(zhuǎn)換為二進(jìn)制整數(shù),然后按位進(jìn)行相應(yīng)的運(yùn)算,運(yùn)算的結(jié)果以十進(jìn)制整數(shù)表示。如果兩個(gè)運(yùn)算數(shù)都是字符串,則位運(yùn)算符將對(duì)字符的ASCII值進(jìn)行操作。PHP位運(yùn)算符&(按位與) $x&$y 把$x和$y中都為1的位設(shè)置為1|(按位或) $x|$y 把$x或$y中為1的位設(shè)置為1^(按位異或) $x^$y 把$x和$y中不同的位設(shè)置為1~(按位取反) ~$x(單目運(yùn)算符) 把$x中為0的位設(shè)置為1,為1的位設(shè)置為0<<(向左移位)$x<<$y 把$x中的位向左移動(dòng)$y次(每一次移動(dòng)都表示“乘以2”)<<(向右移位)$x>>$y 把$x中的位向右移動(dòng)$y次(每一次移動(dòng)都表示“除以2”)任務(wù)2.4使用運(yùn)算符與表達(dá)式2.4.6使用比較運(yùn)算符==(等于) $x==$y 若$x等于$y,則為true;否則為false===(全等) $x===$y 若$x等于$y且兩者類型相同,則為true;否則為false!=(不等于) $x!=$y 若$x不等于$y,則為true;否則為false<>(不等于) $x<>$y 若$x不等于$y,則為true;否則為false!==(非全等) $x!==$y 若$x不等于$y或兩者類型不同,則為true;否則為false<(小于) $x<$y 若$x小于$y,則為true;否則為false>(大于) $x>$y 若$x大于$y,則為true;否則為false<=(小于或等于) $x<=$y 若$x小于或等于$y,則為true;否則為false>=(大于或等于) $x>=$y 若$x大于或等于$y,則為true;否則為false2.4.7使用條件運(yùn)算符(expr1)?(expr2):(expr3)條件表達(dá)式(expr1)?(expr2):(expr3)的值按照以下規(guī)則計(jì)算:當(dāng)表達(dá)式expr1的值為true時(shí),條件表達(dá)式的值為expr2;在expr1求值為false時(shí),條件表達(dá)式的值為expr3。條件運(yùn)算符用于快速構(gòu)造條件語(yǔ)句,可以視為if...else語(yǔ)句的簡(jiǎn)寫形式。任務(wù)2.4使用運(yùn)算符與表達(dá)式2.4.8使用邏輯運(yùn)算符and(邏輯與) $xand$y 若$x和$y均為true,則為trueor(邏輯或) $xor$y 若$x或$y任一為true,則為truexor(邏輯異或) $xxor$y 若$x或$y任一為true但不同時(shí)為true,則為true!(邏輯非) !$x 若$x為true,則為false&&(邏輯與) $x&&$y 若$x和$y均為true,則為true||(邏輯或) $x||$y 若$x或$y任一為true,則為true2.4.9使用表達(dá)式表達(dá)式是PHP語(yǔ)言的重要基礎(chǔ)之一。通過(guò)在表達(dá)式后面添加一個(gè)分號(hào)(;)將構(gòu)成一個(gè)語(yǔ)句。最基本的表達(dá)式形式是常量和變量,稍微復(fù)雜的表達(dá)式是函數(shù)。在PHP中,表達(dá)式可以說(shuō)是無(wú)處不在的。除了常見(jiàn)的算術(shù)表達(dá)式之外,還有各種各樣的其他表達(dá)式。任務(wù)2.4使用運(yùn)算符與表達(dá)式4.4.10運(yùn)算符優(yōu)先級(jí)一個(gè)表達(dá)式中包含多種運(yùn)算符時(shí),運(yùn)算符的優(yōu)先級(jí)決定計(jì)算的先后順序,運(yùn)算符的結(jié)合方向也對(duì)表達(dá)式的計(jì)算有影響,此外還可以使用圓括號(hào)來(lái)提高某些優(yōu)先級(jí)低的運(yùn)算符。任務(wù)2.5使用流程控制語(yǔ)句2.5.1使用選擇語(yǔ)句1.使用if語(yǔ)句if(expr)statements使用else來(lái)擴(kuò)展if語(yǔ)句:if(expr)statementselseelsestatements使用elseif來(lái)擴(kuò)展if語(yǔ)句:if(expr1)statementselseif(expr2)elseifstatementselseelsestatements2.使用switch語(yǔ)句switch(expr){caseexpr1:statements1break;caseexpr2:statements2break;...default:defaultstatementsbreak;}任務(wù)2.5使用流程控制語(yǔ)句2.5.2使用循環(huán)語(yǔ)句1.使用while語(yǔ)句while(expr)statements2.使用do-while語(yǔ)句do{statements}while(expr);3.使用for語(yǔ)句for(expr1;expr2;expr3)statements任務(wù)2.5使用流程控制語(yǔ)句2.5.3使用跳轉(zhuǎn)語(yǔ)句1.使用break語(yǔ)句break語(yǔ)句結(jié)束當(dāng)前for、foreach、while、do-while或switch語(yǔ)句的執(zhí)行,在該語(yǔ)句可以添加一個(gè)可選的數(shù)字參數(shù),以決定跳出幾重循環(huán)。2.使用continue語(yǔ)句continue語(yǔ)句用在各種循環(huán)結(jié)構(gòu)中,用來(lái)跳過(guò)本次循環(huán)中剩余的代碼并在條件求值為真時(shí)開(kāi)始執(zhí)行下一次循環(huán)。continue也可以用在switch語(yǔ)句中。在continue語(yǔ)句中,可以使用一個(gè)可選的數(shù)字參數(shù),以決定跳過(guò)幾重循環(huán)到循環(huán)結(jié)尾。任務(wù)2.5使用流程控制語(yǔ)句2.5.4包含文件語(yǔ)句1.include語(yǔ)句includefilepath;include(filepath);2.include_once語(yǔ)句include_once語(yǔ)句用于在腳本執(zhí)行期間包含并運(yùn)行指定文件,其功能與include語(yǔ)句類似,唯一的區(qū)別在于:如果該文件中的代碼已經(jīng)被包含了,則不會(huì)再次包含。3.require語(yǔ)句requirefilename;require(filename);require語(yǔ)句與include語(yǔ)句功能類似,唯一的區(qū)別在于:如果找不到文件,則include語(yǔ)句產(chǎn)生一個(gè)警告,而require語(yǔ)句則導(dǎo)致一個(gè)致命錯(cuò)誤。如果想在丟失文件時(shí)停止處理頁(yè)面,則應(yīng)該使用require語(yǔ)句。4.require_once語(yǔ)句require_once語(yǔ)句用于在腳本執(zhí)行期間包含并運(yùn)行指定文件,其功能與require語(yǔ)句類似,所不同的是,如果該文件中的代碼已經(jīng)被包含了,則不會(huì)再次包含。任務(wù)2.6使用函數(shù)2.6.1了解PHP內(nèi)部函數(shù)影響PHP行為的擴(kuò)展
數(shù)學(xué)擴(kuò)展
音頻格式操作
非文本內(nèi)容的MIME輸出
身份認(rèn)證服務(wù)
進(jìn)程控制擴(kuò)展
日歷和事件相關(guān)擴(kuò)展
其他基本擴(kuò)展
命令行特有的擴(kuò)展
其他服務(wù)
壓縮與歸檔擴(kuò)展 搜索引擎擴(kuò)展
信用卡處理
面向服務(wù)器的擴(kuò)展
加密擴(kuò)展
Session擴(kuò)展
數(shù)據(jù)庫(kù)擴(kuò)展
文本處理
文件系統(tǒng)相關(guān)擴(kuò)展
變量和類型有關(guān)的擴(kuò)展國(guó)際化與字符編碼支持
Web服務(wù)
圖像生成和處理 Windows平臺(tái)下的擴(kuò)展
郵件相關(guān)擴(kuò)展 XML操作1.檢查函數(shù)是否存在:
boolfunction_exists(string$function_name)2.檢查模塊中包含的函數(shù):
arrayget_extension_funcs(string$module_name)3.檢查所有已定義函數(shù):
arrayget_defined_functions(void)任務(wù)2.6使用函數(shù)2.6.2使用自定義函數(shù)在PHP語(yǔ)言中,通過(guò)關(guān)鍵字function來(lái)定義函數(shù),語(yǔ)法如下:functionfunction_name($arg1,$arg2,...$argN){statementsreturnexpr;}其中function_name是要?jiǎng)?chuàng)建函數(shù)的名稱。命名函數(shù)時(shí)應(yīng)遵循與變量命名相同的規(guī)則,但函數(shù)名不能以美元符號(hào)($)開(kāi)頭。函數(shù)名不區(qū)分大小寫,不過(guò)在調(diào)用函數(shù)的時(shí)候,通常使用其在定義時(shí)相同的形式。$arg1~$argN是函數(shù)的參數(shù),通過(guò)這些參數(shù)可向函數(shù)傳遞信息。一個(gè)函數(shù)可以有多個(gè)參數(shù),它們之間用逗號(hào)分隔。不過(guò),函數(shù)的參數(shù)是可選的,也可以不為函數(shù)指定參數(shù)。參數(shù)可以是各種數(shù)據(jù)類型,例如整型、浮點(diǎn)型、字符串以及數(shù)組等。statements表示在函數(shù)中執(zhí)行的一組語(yǔ)句,稱為函數(shù)體。任何有效的PHP代碼都有可以在函數(shù)內(nèi)部使用,甚至包括其他函數(shù)和類的定義。return語(yǔ)句用于立即結(jié)束此函數(shù)的執(zhí)行并將它的參數(shù)作為函數(shù)的值返回,也用于終止腳本文件的執(zhí)行。任何類型都可以返回,其中包括列表和對(duì)象。這導(dǎo)致函數(shù)立即結(jié)束它的運(yùn)行,并且將控制權(quán)傳遞回它被調(diào)用的行。return()是語(yǔ)言結(jié)構(gòu)而不是函數(shù),僅在參數(shù)包含表達(dá)式時(shí)才需要用括號(hào)將其括起來(lái)。任務(wù)2.6使用函數(shù)2.6.3傳遞函數(shù)的參數(shù)1.通過(guò)引用傳遞參數(shù)在默認(rèn)情況下,函數(shù)參數(shù)通過(guò)值傳遞,這意味著即使在函數(shù)內(nèi)部改變參數(shù)的值,也不會(huì)改變函數(shù)外部的值。如果希望函數(shù)的一個(gè)參數(shù)通過(guò)引用傳遞,則可以在函數(shù)定義中該參數(shù)的前面預(yù)先加上引用符號(hào)“&”。2.設(shè)置參數(shù)的默認(rèn)值定義函數(shù)時(shí),還可以為函數(shù)的參數(shù)設(shè)置默認(rèn)值。默認(rèn)值既可以是標(biāo)量類型,也可以是數(shù)組和特殊類型,例如數(shù)組和NULL。但默認(rèn)值必須是常量表達(dá)式,而不能是變量、類成員或函數(shù)調(diào)用。當(dāng)使用默認(rèn)參數(shù)時(shí),任何默認(rèn)參數(shù)必須放在任何非默認(rèn)參數(shù)的右側(cè);否則函數(shù)可能不會(huì)按照預(yù)期的情況工作。3.使用可變長(zhǎng)度參數(shù)列表在用戶自定義函數(shù)中可使用可變長(zhǎng)度參數(shù)列表。定義可變長(zhǎng)度參數(shù)列表時(shí),可用下列函數(shù)獲取參數(shù)的信息。(1)使用func_num_args()函數(shù)返回傳遞給函數(shù)的參數(shù)數(shù)目,語(yǔ)法如下:intfunc_num_args(void)(2)使用func_get_arg()函數(shù)從參數(shù)列表中獲取一個(gè)參數(shù),語(yǔ)法如下:mixedfunc_get_arg(int$arg_num)(3)使用func_get_args()函數(shù)返回一個(gè)由函數(shù)參數(shù)列表組成的數(shù)組,語(yǔ)法如下:arrayfunc_get_args(void)任務(wù)2.6使用函數(shù)2.6.4設(shè)置函數(shù)的返回值函數(shù)的返回值通過(guò)使用可選的return語(yǔ)句返回。返回值可以是任何類型,其中包括列表和對(duì)象。執(zhí)行return語(yǔ)句時(shí),函數(shù)立即結(jié)束運(yùn)行并將控制權(quán)傳遞回它被調(diào)用的行。如果在一個(gè)函數(shù)中調(diào)用return語(yǔ)句,將立即結(jié)束此函數(shù)的執(zhí)行,并將return語(yǔ)句的參數(shù)作為函數(shù)的值返回給調(diào)用代碼。2.6.5使用變量作用域變量作用域即變量定義的上下文背景,也就是變量的生效范圍。(1)變量的作用域與包含文件。大多數(shù)PHP變量不僅在當(dāng)前PHP文件中生效,其作用域也將包含include和require引入的文件。(2)局部變量。在用戶自定義函數(shù)中,將引入一個(gè)局部函數(shù)范圍。在默認(rèn)情況下,任何用于函數(shù)內(nèi)部的變量將被限制在局部函數(shù)范圍內(nèi),這種變量稱為局部變量。(3)全局變量。在任何函數(shù)外部定義的變量是全局變量。若要在函數(shù)內(nèi)部使用全局變量,可以先用global關(guān)鍵字來(lái)聲明全局變量,然后對(duì)全局變量進(jìn)行訪問(wèn)。(4)使用靜態(tài)變量。靜態(tài)變量使用關(guān)鍵字來(lái)static來(lái)聲明,它僅在局部函數(shù)域中存在,但當(dāng)程序執(zhí)行離開(kāi)此作用域時(shí),其值并不丟失。任務(wù)2.6使用函數(shù)2.6.6使用可變函數(shù)PHP語(yǔ)言支持可變函數(shù)的概念。這意味著如果一個(gè)變量名后有圓括號(hào),PHP將尋找與變量的值同名的函數(shù),并且嘗試執(zhí)行它??勺兒瘮?shù)也稱為變量函數(shù),它可以用來(lái)實(shí)現(xiàn)包括回調(diào)函數(shù)、函數(shù)表在內(nèi)的一些用途??勺兒瘮?shù)不能用于語(yǔ)言結(jié)構(gòu),例如echo()、print()、unset()、isset(),empty()、include()、require()以及類似的語(yǔ)句。2.6.7使用匿名函數(shù)匿名函數(shù)也稱為閉包函數(shù),它允許臨時(shí)創(chuàng)建一個(gè)沒(méi)有指定名稱的函數(shù)。匿名函數(shù)經(jīng)常用作回調(diào)函數(shù)的參數(shù)。當(dāng)然,也有其他應(yīng)用的情況。匿名函數(shù)僅在PHP5.3.0及以上版本有效。匿名函數(shù)也可以作為變量的值來(lái)使用。PHP會(huì)自動(dòng)將表達(dá)式轉(zhuǎn)換成內(nèi)置類Closure的對(duì)象實(shí)例。將一個(gè)Closure對(duì)象賦值給一個(gè)變量的方式與普通變量賦值的語(yǔ)法是一樣的,最后也要加上分號(hào)。項(xiàng)目3PHP數(shù)據(jù)處理項(xiàng)目目標(biāo)掌握字符串處理方法掌握日期/時(shí)間處理方法掌握數(shù)組處理方法CONTENTS目錄任務(wù)3.1字符串處理01任務(wù)3.2數(shù)組處理02任務(wù)3.3日期/時(shí)間處理03任務(wù)3.1字符串處理3.1.1字符串的格式化輸出(1)使用print()函數(shù)輸出一個(gè)字符串:intprint(string$arg)(2)使用printf()函數(shù)輸出一個(gè)格式化的字符串并返回輸出字符串的長(zhǎng)度:intprintf(string$format[,mixed$args[,mixed...]])(3)使用sprintf()函數(shù)返回一個(gè)格式化的字符串:stringsprintf(string$format[,mixed$args[,mixed$...]])任務(wù)3.1字符串處理3.1.2了解常用字符串函數(shù)stringaddslashes(string$str)使用反斜線引用字符串stringchr(int$ascii)返回指定的字符arrayexplode(string$separator,string$str[,int$limit])使用一個(gè)字符串分割另一個(gè)字符串stringhtmlentities(string$str[,int$flags[,string$charset]])
將字符串中的一些HTML標(biāo)記轉(zhuǎn)換為HTML實(shí)體并返回處理后的字符串stringhtmlspecialchars(string$str[,int$flags[,string$charset]])將字符串中的一些特殊字符替換為HTML文本實(shí)體并返回經(jīng)過(guò)處理的字符串stringimplode(string$glue,array$pieces)
將數(shù)組元素連接成一個(gè)字符串并返回該字符串stringlcfirst(string$str)將一個(gè)字符串的首字符轉(zhuǎn)換為小寫stringltrim(string$str[,string$charlist])去除字符串左邊的空格或其他字符并返回處理后的字符串任務(wù)3.1字符串處理3.1.2了解常用字符串函數(shù)stringltrim(string$str[,string$charlist])去除字符串左邊的空格或其他字符并返回處理后的字符串stringmoney_format(string$format,float$number)將一個(gè)數(shù)字格式化為一個(gè)貨幣字符串stringnl2br(string$str[,bool$is_xhtml])在字符串所有新行之前插入HTML換行標(biāo)記并返回處理后的字符串intord(string$str)返回字符串str中第一個(gè)字符的ASCII碼值voidparse_str(string$str[,array&$arr])將字符串str解析成變量stringrtrim(string$str[,string$charlist])刪除字符串末端的空白字符(或者其他字符)并返回改變后的字符串a(chǎn)rraystr_getcsv(string$input[,string$delimiter[,string$enclosure[,string$escape]]])解析CSV字符串為一個(gè)數(shù)組并返回一個(gè)包含讀取到的字段的索引數(shù)組stringstr_pad(string$input,int$pad_length[,string$pad_string[,int$pad_type]])
使用字符串pad_string填充字符串input為指定長(zhǎng)度,pad_length并返回input被從左端、右端或者同時(shí)兩端被填充到指定長(zhǎng)度后的結(jié)果任務(wù)3.1字符串處理3.1.3HTML文本格式化(1)使用nl2br()函數(shù)可將字符串中的所有換行符:stringnl2br(string$str[,bool$is_xhtml=true])(2)使用htmlspecialchars()函數(shù)可將字符串中的一些特殊字符替換為HTML文本實(shí)體并返回經(jīng)過(guò)處理的字符串:stringhtmlspecialchars(string$str[,int$flags[,string$encoding[,bool$double_encode=true]]])(3)使用htmlentities()函數(shù)將字符串中的一些HTML標(biāo)簽轉(zhuǎn)換為HTML實(shí)體并返回經(jīng)過(guò)處理的字符串:stringhtmlentities(string$string[,int$flags[,string$encoding[,bool$double_encode=true]]])(4)使用strip_tags()函數(shù)從字符串中去除所有PHP和HTML標(biāo)簽并返回經(jīng)過(guò)處理的字符串:stringstrip_tags(string$str[,string$allowable_tags])任務(wù)3.1字符串處理3.1.4連接和分割字符串(1)使用implode()函數(shù)將數(shù)組元素連接成一個(gè)字符串并返回該字符串:stringimplode(string$glue,array$pieces)(2)使用explode()函數(shù)以指定字符串分割一個(gè)字符串并返回一個(gè)數(shù)組:arrayexplode(string$separator,string$str[,int$limit])(3)使用strtok()函數(shù)將一個(gè)字符串按另一個(gè)字符串值分割成若干個(gè)字符串:stringstrtok(string$str,string$token)任務(wù)3.1字符串處理3.1.5查找和替換字符串(1)使用strpos()函數(shù)從一個(gè)字符串中查找另一個(gè)字符串首次出現(xiàn)的位置:intstrpos(string$haystack,mixed$needle[,int$offset=0])(2)使用strrpos()函數(shù)在一個(gè)字符串中查找另一個(gè)字符串的最后一次出現(xiàn):intstrrpos(string$haystack,mixed$needle[,int$offset=0])(3)使用str_replace()函數(shù)在一個(gè)字符串中查找一個(gè)子串的所有出現(xiàn)并使用新字符串替換該子串:mixedstr_replace(mixed$search,mixed$replace,mixed$subject[,int&$count])(4)使用substr_replace()函數(shù)替換子串的文本內(nèi)容并返回替換后的字符串:mixedsubstr_replace(mixed$str,string$replacement,int$start[,int$length])任務(wù)3.1字符串處理3.1.6從字符串中取子串(1)使用substr()函數(shù)從指定字符串中返回一個(gè)子串,語(yǔ)法如下:stringsubstr(string$str,int$start[,int$length])(2)使用strstr()函數(shù)在一個(gè)字符串中查找一個(gè)子串的首次出現(xiàn)并返回字符串的一部分或false,語(yǔ)法如下:stringstrstr(string$haystack,mixed$needle[,bool$before_needle])(3)使用strrchr()函數(shù)在一個(gè)字符串中查找另一個(gè)字符串的最后一次出現(xiàn)并返回字符串的一部分,語(yǔ)法如下:stringstrrchr(string$haystack,string$needle)任務(wù)3.2數(shù)組處理3.2.1創(chuàng)建數(shù)組1.用語(yǔ)言結(jié)構(gòu)array()創(chuàng)建數(shù)組$array_name=array([key=>]value,...);通過(guò)數(shù)組名和索引來(lái)引用數(shù)組內(nèi)的任何一個(gè)元素的值:$array_name[key]引用二維數(shù)組:$array_name[key1][key2]2.用方括號(hào)語(yǔ)法新建或修改數(shù)組$array_name[key]=value;$array_name[]=value;任務(wù)3.2數(shù)組處理3.2.2遍歷數(shù)組在PHP語(yǔ)言中,可以通過(guò)foreach循環(huán)語(yǔ)句來(lái)遍歷數(shù)組。該語(yǔ)句僅用于數(shù)組。當(dāng)試圖將該語(yǔ)句用于其他數(shù)據(jù)類型或者一個(gè)未初始化的變量時(shí)會(huì)產(chǎn)生錯(cuò)誤。foreach語(yǔ)句有以下兩種語(yǔ)法格式:foreach(array_expras$value)statementsforeach(array_expras$key=>$value)statements第一種語(yǔ)法格式遍歷給定的array_expr數(shù)組。在每次循環(huán)中,當(dāng)前元素的值被賦給變量value,并且數(shù)組內(nèi)部的指針向前移一步,因此在下一次循環(huán)中將會(huì)得到下一元素。第二種語(yǔ)法格式是第一種語(yǔ)法格式的擴(kuò)展,其作用與第一種語(yǔ)法格式作用相同,但當(dāng)前元素的鍵名會(huì)在每次循環(huán)中賦給變量key。這種語(yǔ)法格式還能用于遍歷對(duì)象。任務(wù)3.2數(shù)組處理3.2.3使用預(yù)定義數(shù)組PHP提供了一些預(yù)定義數(shù)組,它們可以在PHP代碼中直接使用,而不需要進(jìn)行初始化。這些數(shù)組包含來(lái)自Web服務(wù)器(如果可用)、運(yùn)行環(huán)境以及用戶輸入的數(shù)據(jù),而且在全局范圍內(nèi)自動(dòng)生效,因此也稱為超全局變量。一些常用的預(yù)定義數(shù)組在表4.5中列出。任務(wù)3.2數(shù)組處理3.2.4使用數(shù)組函數(shù)boolarray_key_exists(mixed$key,array$search)檢查給定的鍵名或索引是否存在于數(shù)組中。mixedarray_pop(array&arr)彈出并返回arr數(shù)組的最后一個(gè)元素(出棧),將數(shù)組arr的長(zhǎng)度減1。intarray_push(array&$arr,mixed$var[,mixed$...])將一個(gè)或多個(gè)傳入的單元壓入數(shù)組arr的末尾(入棧)。arrayarray_reverse(array$arr[,bool$preserve_keys])返回一個(gè)元素順序相反的新數(shù)組mixedarray_shift(array&$arr) 將數(shù)組arr的第一個(gè)元素移出并作為結(jié)果返回,將arr的長(zhǎng)度減1并將所有其他元素向前移動(dòng)一位numberarray_sum(array$arr) 計(jì)算數(shù)組arr中所有值的和并以整數(shù)或浮點(diǎn)數(shù)返回arrayarray_unique(array$arr)
接受數(shù)組arr作為輸入并返回沒(méi)有重復(fù)值的新數(shù)組intarray_unshift(array&$arr,mixed$var[,mixed$...])將傳入的單元插入到數(shù)組arr的開(kāi)頭arrayarray_values(array$input)返回?cái)?shù)組input中所有的值并給其建立數(shù)字索引任務(wù)3.3日期/時(shí)間處理3.3.1設(shè)置默認(rèn)時(shí)區(qū)(1)在php.ini中設(shè)置date.timezone選項(xiàng)。設(shè)置中國(guó)標(biāo)準(zhǔn)時(shí)間的代碼為:date.timezone=PRCdate.timezone選項(xiàng)設(shè)置對(duì)所有PHP腳本均有效。(2)使用內(nèi)置函數(shù)date_default_timezone_set()來(lái)設(shè)置用于一個(gè)腳本中所有日期時(shí)間函數(shù)的默認(rèn)時(shí)區(qū),語(yǔ)法如下:booldate_default_timezone_set(string$timezone_identifier)設(shè)置中國(guó)標(biāo)準(zhǔn)時(shí)間的代碼:date_default_timezone_set("Asia/Shanghai");任務(wù)3.3日期/時(shí)間處理3.3.2獲取日期和時(shí)間使用getdate()函數(shù)可以取得日期/時(shí)間信息,語(yǔ)法如下:arraygetdate([int$timestamp])任務(wù)3.3日期/時(shí)間處理3.3.3格式化日期/時(shí)間使用date()函數(shù)可以獲取一個(gè)本地日期/時(shí)間并進(jìn)行格式設(shè)置,語(yǔ)法如下:stringdate(string$format[,int$timestamp])其中參數(shù)format指定日期/時(shí)間的顯示格式;timestamp是一個(gè)整數(shù),表示時(shí)間戳。項(xiàng)目4面向?qū)ο缶幊添?xiàng)目目標(biāo)理解面向?qū)ο缶幊袒靖拍钫莆疹惡蛯?duì)象的用法掌握實(shí)現(xiàn)繼承與多態(tài)的方法CONTENTS目錄任務(wù)4.1面向?qū)ο缶幊谈攀?1任務(wù)4.2使用類和對(duì)象02任務(wù)4.4實(shí)現(xiàn)繼承與多態(tài)02任務(wù)4.1面向?qū)ο缶幊谈攀?.1.1面向?qū)ο蟮幕靖拍顚?duì)象是人們要進(jìn)行研究的任何事物,對(duì)象有狀態(tài)、行為和標(biāo)識(shí)三種屬性。對(duì)象不僅能表示具體的事物,也能表示抽象的規(guī)則、計(jì)劃或事件。對(duì)象的狀態(tài)和特征通過(guò)數(shù)據(jù)表現(xiàn)出來(lái)就是屬性;對(duì)象的狀態(tài)可以通過(guò)對(duì)象的操作來(lái)改變,這些操作通過(guò)程序代碼來(lái)實(shí)現(xiàn)就是方法。對(duì)象實(shí)現(xiàn)了數(shù)據(jù)和操作的結(jié)合,數(shù)據(jù)和操作封裝于對(duì)象這個(gè)統(tǒng)一體中。類實(shí)際上就是一種復(fù)合數(shù)據(jù)類型,是對(duì)一組具有相同屬性和相同操作的對(duì)象的抽象。類是對(duì)象的抽象化,類是在對(duì)象之上的抽象,對(duì)象則是類的具體化,是類的實(shí)例,從一個(gè)類可以創(chuàng)建多個(gè)對(duì)象。封裝是指將對(duì)象的數(shù)據(jù)(屬性)和操作數(shù)據(jù)的過(guò)程(方法)結(jié)合起來(lái)所構(gòu)成的單元,其內(nèi)部信息對(duì)外界是隱藏的,外界不能直接訪問(wèn)對(duì)象的屬性,而只能通過(guò)類對(duì)外部提供的接口對(duì)該對(duì)象進(jìn)行各種操作,從而保證程序中數(shù)據(jù)的安全性。繼承是指在一個(gè)類的基礎(chǔ)上定義一個(gè)新的類,原有的類稱為基類,超類或父類,新生成的類稱為派生類或子類。多態(tài)是指一個(gè)名稱相同的方法產(chǎn)生了不同的動(dòng)作行為,即不同對(duì)象收到相同的消息時(shí)產(chǎn)生了不同的行為方式。多態(tài)允許將父對(duì)象賦值成為與其子對(duì)象,賦值之后父對(duì)象可以根據(jù)當(dāng)前賦值給它的子對(duì)象的特性以不同的方式運(yùn)作。任務(wù)4.1面向?qū)ο缶幊谈攀?.1.2面向過(guò)程與面向?qū)ο蟮谋容^面向過(guò)程和面向?qū)ο笫莾煞N不同的編程方式。面向過(guò)程編程就是通過(guò)算法分析列出解決問(wèn)題的步驟,將程序劃分為若干個(gè)功能模塊,然后通過(guò)函數(shù)來(lái)實(shí)現(xiàn)這些功能模塊,在解決問(wèn)題的過(guò)程中根據(jù)需要調(diào)用相關(guān)的函數(shù)。面向?qū)ο缶幊虅t是將構(gòu)成問(wèn)題的事務(wù)分解成各個(gè)對(duì)象,根據(jù)對(duì)象的屬性和操作抽象出類的定義,然后基于類創(chuàng)建對(duì)象實(shí)例,其目的是為了描述某個(gè)事物在整個(gè)解決問(wèn)題的過(guò)程中的行為,而不是為了實(shí)現(xiàn)一個(gè)過(guò)程。面向?qū)ο缶幊淌且环N以對(duì)象為基礎(chǔ),以事件或消息來(lái)驅(qū)動(dòng)對(duì)象執(zhí)行處理的程序設(shè)計(jì)方法,其主要特征是抽象性、封裝性、繼承性及多態(tài)性。面向過(guò)程編程和面向?qū)ο缶幊痰膮^(qū)別主要表現(xiàn)在以下幾個(gè)方面。面向過(guò)程編程是通過(guò)函數(shù)來(lái)描述對(duì)數(shù)據(jù)的操作,但又將函數(shù)與其操作的數(shù)據(jù)分離開(kāi)來(lái);面向?qū)ο缶幊虒?shù)據(jù)和對(duì)數(shù)據(jù)的操作封裝在一起,作為一個(gè)對(duì)象來(lái)處理。面向過(guò)程編程以功能為中心來(lái)設(shè)計(jì)功能模塊,程序難以維護(hù);面向?qū)ο缶幊桃詳?shù)據(jù)為中心來(lái)描述系統(tǒng),數(shù)據(jù)相對(duì)于功能而言具有較強(qiáng)的穩(wěn)定性,因此程序更容易維護(hù)。面向過(guò)程程序的控制流程由程序中預(yù)定順序來(lái)決定;面向?qū)ο蟪绦虻目刂屏鞒逃蛇\(yùn)行時(shí)各種事件的實(shí)際發(fā)生來(lái)觸發(fā),而不再由預(yù)定順序來(lái)決定,因此更符合實(shí)際需要。任務(wù)4.2使用類和對(duì)象4.2.1創(chuàng)建類和對(duì)象1.使用關(guān)鍵字class來(lái)聲明一個(gè)類:classclass_name{//在此處定義類的屬性和方法}其中class_name表示類名,可以是任何非PHP保留字的名字;在花括號(hào)之間包含類的成員定義,類的成員主要包括屬性、方法和常量。不能將一個(gè)類定義分隔到多個(gè)文件或PHP代碼塊中。類是對(duì)象的模板,通過(guò)類的實(shí)例化可以創(chuàng)建對(duì)象,對(duì)象占用一定的存儲(chǔ)空間。被創(chuàng)建的對(duì)象稱為類的一個(gè)實(shí)例。2.使用new運(yùn)算符創(chuàng)建對(duì)象:$instance=newclass_name();其中new表示申請(qǐng)空間操作符,class_name表示類名。上述賦值語(yǔ)句創(chuàng)建類的一個(gè)對(duì)象實(shí)例,并將該對(duì)象的一個(gè)引用賦給變量instance。3.訪問(wèn)對(duì)象的屬性和方法:$instance->property$instance->method()其中instance為對(duì)象變量,指向用new運(yùn)算符創(chuàng)建的對(duì)象;“->”為對(duì)象成員訪問(wèn)符號(hào),用在對(duì)象與其成員之間;property表示對(duì)象的屬性,method表示對(duì)象的方法(可能包含參數(shù))。任務(wù)4.2使用類和對(duì)象4.2.2為類添加成員1.為類添加屬性classclass_name{public|protected|private$property_name[=initializer];}2.為類添加方法classclass_name{[public|protected|private]functionmethod_name([mixed$args[,$...]]){//在此處編寫方法體代碼
}}3.為類添加常量constconstant_name=value;任務(wù)4.2使用類和對(duì)象4.2.3為類添加構(gòu)造方法和析構(gòu)方法構(gòu)造方法和析構(gòu)方法是類中的兩個(gè)特殊方法成員。前者在每次創(chuàng)建對(duì)象時(shí)自動(dòng)調(diào)用,后者在某個(gè)對(duì)象的所有引用都被刪除或者當(dāng)對(duì)象被顯式銷毀時(shí)執(zhí)行。1.為類添加構(gòu)造方法void__construct([mixed$args[,$...]]){//在此處編寫方法體的代碼}2.為類添加析構(gòu)方法void__destruct(void){//在此處編寫方法體的代碼}使用語(yǔ)言結(jié)構(gòu)unset來(lái)銷毀給定的變量:voidunset(mixed$var[,mixed$var[,$...]])任務(wù)4.2使用類和對(duì)象4.2.4為類添加靜態(tài)成員使用static關(guān)鍵字可以將類的屬性或方法聲明為靜態(tài)的,這樣,無(wú)需對(duì)類進(jìn)行實(shí)例化即可訪問(wèn)這些屬性或方法。一個(gè)聲明為靜態(tài)的屬性不能由類的實(shí)例化對(duì)象來(lái)訪問(wèn),但可以由對(duì)象通過(guò)“->”操作符來(lái)訪問(wèn)靜態(tài)方法。靜態(tài)屬性和靜態(tài)方法不能在派生類中重新定義。聲明靜態(tài)成員時(shí),static關(guān)鍵字必須放在訪問(wèn)修飾符之后。為了與PHP4保持兼容,如果未指定訪問(wèn)修飾符,則類的屬性和方法默認(rèn)為public。由于靜態(tài)方法不需要通過(guò)對(duì)象即可調(diào)用,所以偽變量$this在靜態(tài)方法中不可用。靜態(tài)屬性不可以由對(duì)象通過(guò)->操作符來(lái)訪問(wèn)。如果要在靜態(tài)方法內(nèi)部訪問(wèn)靜態(tài)屬性,則可以使用以下語(yǔ)法來(lái)實(shí)現(xiàn):self::$property其中::(一對(duì)半角冒號(hào))是范圍解析操作符,可以在未聲明任何實(shí)例的情況下訪問(wèn)類中的函數(shù)或者基類中的屬性或方法。關(guān)鍵字self指向當(dāng)前類,用于在類的內(nèi)部對(duì)成員或方法進(jìn)行訪問(wèn)。在類定義的外部,可以通過(guò)以下語(yǔ)法來(lái)訪問(wèn)類的靜態(tài)屬性或靜態(tài)方法:class_name::$propertyclass_name::method()任務(wù)4.2使用類和對(duì)象4.2.5自動(dòng)加載對(duì)象在應(yīng)用開(kāi)發(fā)中,通常要對(duì)每個(gè)類的定義建立一個(gè)PHP源文件。這樣一來(lái),就不得不在每個(gè)腳本開(kāi)頭編寫一個(gè)長(zhǎng)長(zhǎng)的包含文件列表,以包含所需的類文件。在PHP5中,可以定義一個(gè)__autoload函數(shù),它會(huì)在試圖使用尚未被定義的類時(shí)自動(dòng)調(diào)用。這個(gè)函數(shù)被稱為魔術(shù)函數(shù),通過(guò)調(diào)用它,腳本引擎在PHP出錯(cuò)失敗前有了最后一個(gè)機(jī)會(huì)來(lái)加載所需的類。__autoload函數(shù)嘗試加載未定義的類,語(yǔ)法如下:void__autoload(string$class_name)其中class_name表示待加載的類名。通過(guò)定義__autoload函數(shù)可以啟用類的自動(dòng)加載。這個(gè)函數(shù)沒(méi)有返回值。任務(wù)4.2使用類和對(duì)象4.2.6迭代對(duì)象PHP5提供了一種迭代對(duì)象的功能,就像使用數(shù)組那樣,可以通過(guò)foreach循環(huán)語(yǔ)句來(lái)遍歷對(duì)象中的屬性。語(yǔ)法如下:foreach($objas$key=>$value){//每次循環(huán)中對(duì)象的屬性名和屬性值
//分別被賦給變量$key和$value}如果在類方法中內(nèi)部進(jìn)行迭代,則可以使用偽變量$this來(lái)指向當(dāng)前對(duì)象,此時(shí)將得到所有屬性的值;如果在類外部對(duì)對(duì)象進(jìn)行迭代,則只能得到外部可見(jiàn)的那些屬性的值。任務(wù)4.2使用類和對(duì)象4.2.7克隆對(duì)象在PHP中,對(duì)象賦值總是通過(guò)引用形式實(shí)現(xiàn)的。當(dāng)把一個(gè)對(duì)象已經(jīng)創(chuàng)建的實(shí)例賦給一個(gè)新變量時(shí),通過(guò)新變量可以訪問(wèn)同一對(duì)象實(shí)例。當(dāng)通過(guò)新變量更改對(duì)象的屬性值時(shí),原變量所引用向?qū)ο蟮膶傩灾惦S之發(fā)生變化。若要生成對(duì)象的一個(gè)副本,則應(yīng)以克隆方式來(lái)實(shí)現(xiàn)。語(yǔ)法如下:$copy_of_object=clone$object;此時(shí),變量copy_of_object引用的對(duì)象將獨(dú)立于變量object引用的對(duì)象。對(duì)象克隆是PHP5的新特性之一??寺?duì)象時(shí)將調(diào)用對(duì)象正本的__clone()方法,而對(duì)象的__clone方法是不能夠直接被調(diào)用的。當(dāng)創(chuàng)建對(duì)象的副本時(shí),PHP5將會(huì)檢查_(kāi)_clone()方法是否存在。如果存在,則調(diào)用該方法,否則調(diào)用默認(rèn)的__clone()方法,復(fù)制對(duì)象的所有屬性。通過(guò)定義__clone()方法,可以設(shè)置對(duì)象副本的屬性值,使其不同于對(duì)象正本。任務(wù)4.2使用類和對(duì)象4.2.8比較對(duì)象在PHP4中,對(duì)象比較的規(guī)則十分簡(jiǎn)單:如果兩個(gè)對(duì)象是同一個(gè)類的實(shí)例,并且它們有相同的屬性和值,則這兩個(gè)對(duì)象相等。這個(gè)比較規(guī)則適用于用相等運(yùn)算符(==)和全等運(yùn)算符(===)對(duì)兩個(gè)對(duì)象進(jìn)行比較。在PHP5中,對(duì)象的比較要比PHP4中復(fù)雜,也比其他面向?qū)ο笳Z(yǔ)言復(fù)雜??煞譃橄铝袃煞N情況:(1)當(dāng)使用相等運(yùn)算符(==)時(shí),將以一種簡(jiǎn)單方式來(lái)比較對(duì)象變量,即:如果具有相同的屬性和值,而且是同一個(gè)類的實(shí)例,則兩個(gè)對(duì)象相同。(2)當(dāng)使用全等運(yùn)算符(===)時(shí),只有當(dāng)兩個(gè)對(duì)象變量引用同一個(gè)類的同一個(gè)實(shí)例時(shí),這兩個(gè)對(duì)象變量才是相同的。任務(wù)4.3實(shí)現(xiàn)繼承與多態(tài)4.3.1實(shí)現(xiàn)類的繼承使用關(guān)鍵字extends來(lái)擴(kuò)展一個(gè)類:classderived_classextendsbase_class{//在此處定義類的成員}其中derived_class表示新建的類,稱為派生類或子類;base_class表示新類所繼承的類,稱為基類或父類。當(dāng)擴(kuò)展一個(gè)類時(shí),派生類就會(huì)繼承基類的所有公有和保護(hù)方法。但是派生類的方法會(huì)覆蓋基類的方法。如果派生類中定義了構(gòu)造方法,則不會(huì)暗中調(diào)用其基類的構(gòu)造方法。若要執(zhí)行基類的構(gòu)造方法,需要在派生類的構(gòu)造方法中通過(guò)以下語(yǔ)法來(lái)調(diào)用:parent::__construct();其中parent指的是派生類在extends聲明中所指的基類的名字。這樣做可以避免在多個(gè)地方使用基類的名字。如
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度教育培訓(xùn)機(jī)構(gòu)教育行業(yè)數(shù)據(jù)服務(wù)協(xié)議
- 二零二五年度農(nóng)業(yè)科技文職人員聘用協(xié)議
- 2025年度茶樓合作經(jīng)營(yíng)協(xié)議書:茶樓與茶藝茶具研發(fā)中心的合作合同
- 二零二五年度知識(shí)產(chǎn)權(quán)質(zhì)押合同解除與資金返還協(xié)議
- 2025年度船舶租賃與船舶技術(shù)咨詢服務(wù)協(xié)議
- 2025年度超市轉(zhuǎn)讓與智能化升級(jí)改造合作協(xié)議
- 2025年度智能化社區(qū)物業(yè)委托經(jīng)營(yíng)管理合同
- 專業(yè)資格教育培訓(xùn)合作協(xié)議
- 新型儲(chǔ)能技術(shù)應(yīng)用開(kāi)發(fā)合作協(xié)議
- 行路難:古典詩(shī)詞中的壯志情懷教案
- 尿源性膿毒血癥護(hù)理
- 2024解析:第十一章 功和機(jī)械能-講核心(解析版)
- 中建住宅樓懸挑卸料平臺(tái)專項(xiàng)施工方案
- 【MOOC】數(shù)據(jù)庫(kù)系統(tǒng)(下):管理與技術(shù)-哈爾濱工業(yè)大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- 日本留學(xué)中介簽約合同
- 鐵路安全應(yīng)急預(yù)案
- 《城市軌道交通車輛構(gòu)造》 課件 2.2 不銹鋼車體結(jié)構(gòu)認(rèn)知
- 古詩(shī)詞誦讀《李憑箜篌引》 公開(kāi)課一等獎(jiǎng)創(chuàng)新教案統(tǒng)編版高中語(yǔ)文選擇性必修中冊(cè)
- 小學(xué)生日常行為規(guī)范實(shí)施方案
- 2024-2025學(xué)年九年級(jí)化學(xué)人教版上冊(cè)檢測(cè)試卷(1-4單元)
- 2024年遼寧省鞍山岫巖滿族自治縣事業(yè)單位招聘(150人)歷年高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
評(píng)論
0/150
提交評(píng)論