PHP程序設(shè)計項目化教程(微課版) 課件全套 臧金梅 項目1-7 啟程探索PHP世界-學(xué)生信息管理系統(tǒng)_第1頁
PHP程序設(shè)計項目化教程(微課版) 課件全套 臧金梅 項目1-7 啟程探索PHP世界-學(xué)生信息管理系統(tǒng)_第2頁
PHP程序設(shè)計項目化教程(微課版) 課件全套 臧金梅 項目1-7 啟程探索PHP世界-學(xué)生信息管理系統(tǒng)_第3頁
PHP程序設(shè)計項目化教程(微課版) 課件全套 臧金梅 項目1-7 啟程探索PHP世界-學(xué)生信息管理系統(tǒng)_第4頁
PHP程序設(shè)計項目化教程(微課版) 課件全套 臧金梅 項目1-7 啟程探索PHP世界-學(xué)生信息管理系統(tǒng)_第5頁
已閱讀5頁,還剩705頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

啟程探索PHP世界

——PHP編程入門

項目1在數(shù)字化時代,我們每天都在與各種網(wǎng)站和應(yīng)用進(jìn)行交互。例如,當(dāng)你嘗試登錄一個在線購物網(wǎng)站時,需要輸入用戶名和密碼,在這個過程中,如果輸入密碼錯誤次數(shù)過多,賬戶就會被暫時鎖定,這是網(wǎng)站的一種自我保護(hù)機制,防止惡意嘗試破解密碼。這種功能往往是通過PHP等后端程序?qū)崿F(xiàn)的,這凸顯了PHP在網(wǎng)絡(luò)安全中的重要?性。張華認(rèn)識到了PHP在網(wǎng)絡(luò)安全中的關(guān)鍵作用,決定深入學(xué)習(xí)PHP。李老師強調(diào),學(xué)習(xí)PHP絕不僅是掌握其基本語法和結(jié)構(gòu)那么簡單,更重要的是深入理解并熟練運用變量、數(shù)據(jù)類型、流程控制等核心知識。此外,要想成為真正的PHP高手,還需進(jìn)一步探索PHP的高級特性,如面向?qū)ο缶幊獭⑶昂蠖藬?shù)據(jù)交互以及文件和目錄操作等。相信在李老師的帶領(lǐng)下,張華不僅能夠迅速掌握PHP編程的精髓,更能提升網(wǎng)絡(luò)安全意識,為迎接數(shù)字化時代的挑戰(zhàn)做好充分的準(zhǔn)?備。啟程探索PHP世界■

熟悉PHP的概念;■

了解PHP的發(fā)展歷史、語言特性;■

掌握PHP開發(fā)環(huán)境的搭建;■

掌握VisualStudioCode的安裝、配置以及運行;■

掌握如何編寫PHP程序,能夠創(chuàng)建并執(zhí)行PHP腳本。■

能選擇合適的PHP開發(fā)環(huán)境和開發(fā)工具;■

能夠搭建PHP開發(fā)環(huán)境;■

熟悉服務(wù)器的啟動步驟,能完成服務(wù)器的啟動。■

提升自主搭建開發(fā)環(huán)境和解決問題的能力;■

培養(yǎng)主動學(xué)習(xí)和探究程序設(shè)計語言奧秘的習(xí)慣;

培養(yǎng)創(chuàng)新思維,能夠運用PHP解決實際問題,為我國互聯(lián)網(wǎng)產(chǎn)業(yè)的發(fā)展貢獻(xiàn)力量。PHP簡介PHP開發(fā)環(huán)境與工具PHP的簡單語法PHP簡介PART011.1.1什么是PHPPHP,一般指PageHypertextPreprocessor,即頁面超文本預(yù)處理器,采用一種通用開源腳本語言。PHP的主要用途之一是生成動態(tài)網(wǎng)頁。與靜態(tài)網(wǎng)頁(內(nèi)容在服務(wù)器中已經(jīng)固定,不會改變)不同,動態(tài)網(wǎng)頁的內(nèi)容是根據(jù)用戶的請求、數(shù)據(jù)庫數(shù)據(jù)或其他變量實時生成的。PHP允許開發(fā)者在服務(wù)器端編寫程序,從而根據(jù)用戶的交互和其他條件動態(tài)地生成和呈現(xiàn)網(wǎng)頁內(nèi)?容。PHP不僅功能強大,而且易于學(xué)習(xí),對于從事網(wǎng)頁開發(fā)的專業(yè)人士而言,掌握PHP編程具有極高的價值。隨著信息化技術(shù)的不斷發(fā)展,PHP將繼續(xù)在網(wǎng)頁生成、應(yīng)用程序開發(fā)、網(wǎng)絡(luò)安全維護(hù)領(lǐng)域等發(fā)揮關(guān)鍵作用,為互聯(lián)網(wǎng)的發(fā)展貢獻(xiàn)力?量。1.1.2

PHP的發(fā)展歷史php1時間(年)199419961998200020042016php2php3php4php5php7?版本123456782020php81.1.3

PHP的語言特性PHP作為服務(wù)器端腳本語言中的佼佼者,憑借其獨有且強大的語言特性,在Web開發(fā)領(lǐng)域占據(jù)了不可替代的地位。以下是PHP的幾大核心特?性。1.語法簡潔,開發(fā)高效2.開源、免費,可跨平臺3.較好的數(shù)據(jù)庫兼容性4.面向?qū)ο笈c面向過程的雙重支持1.1.4

PHP的工作原理PHP在服務(wù)器運行,客戶端瀏覽器只需要接收服務(wù)器返回的HTML內(nèi)容。PHP腳本通常以“.php”為文件擴展名,可以在各種服務(wù)器環(huán)境中運行。PHP的工作原理如圖所示。當(dāng)用戶在瀏覽器中輸入一個包含PHP腳本的統(tǒng)一資源定位符(UniformResourceLocator,URL)(其文件擴展名通常為.php)時,瀏覽器會向服務(wù)器發(fā)送一個HTTP(超文本傳送協(xié)議)請求。服務(wù)器接收到請求后,會檢查請求的資源是否包含PHP腳本(通過文件擴展名識別),如果包含,服務(wù)器會將該PHP腳本交給PHP解釋器(PHP引擎)進(jìn)行處理。PHP開發(fā)環(huán)境與工具PART021.2.1

PHP開發(fā)環(huán)境為了搭建一個穩(wěn)定的PHP開發(fā)環(huán)境,通常需要集成以下幾個核心組?件。首先是Web服務(wù)器,它負(fù)責(zé)處理HTTP請求和響應(yīng)。其次是PHP解釋器,它的作用是解析和執(zhí)行PHP代碼。數(shù)據(jù)庫也是不可或缺的一部分,它用于數(shù)據(jù)的存儲和檢索。PHP服務(wù)器的經(jīng)典結(jié)構(gòu)—LAMP(Linux+Apache+MySQL+PHP)和WAMP(Windows+Apache+MySQL+PHP)。這兩種結(jié)構(gòu)分別適用于Linux和Windows操作系?統(tǒng)。在安裝方式上,有兩種選擇以滿足不同用戶的需求:集成安裝和自定義安裝。1.2.2

PHP集成開發(fā)環(huán)境重點介紹如何利用集成安裝的方式,以簡單、直接的方法快速搭建起一個穩(wěn)定且高效的PHP開發(fā)環(huán)境。通過這種方式,用戶能更順暢地進(jìn)入PHP開發(fā)世界,減少在環(huán)境搭建上可能遇到的困擾和阻?礙。集成安裝是指將幾個核心組件(Apache+MySQL+PHP解析器)一起安裝。以phpStudy為例,它不僅集成了Apache、PHP解釋器和MySQL,還附帶了phpMyAdmin等實用工具,為開發(fā)者提供一站式服務(wù)。一旦安裝完成,用戶通過phpStudy的控制面板輕松啟動或停止Apache、MySQL等服務(wù)。1.2.2

PHP集成開發(fā)環(huán)境1.2.3

PHP開發(fā)工具在搭建好PHP開發(fā)環(huán)境之后,選擇一個合適的開發(fā)工具對于提高開發(fā)效率至關(guān)重要。1.VisualStudioCode擁有豐富的插件生態(tài)系統(tǒng),可以通過安裝插件來擴展其功能,比如支持PHP語法檢查、自動補全、代碼調(diào)試等。2.SublimeText是一款高度可定制的代碼編輯器,它支持多選、代碼片段、自定義宏等高級編輯功能,并且可以通過安裝插件來擴展其功能。3.PhpStorm是一款專門為PHP開發(fā)者打造的集成開發(fā)環(huán)境,它提供了全面的PHP支持,包括智能代碼補全、代碼質(zhì)量分析、快速導(dǎo)航等功能。4.Notepad++具有輕量級、啟動速度快的特點,并且提供了基本的語法高亮和代碼折疊功能。雖然它的功能相對簡單,但對于初學(xué)者來說已經(jīng)足夠使?用。在選擇PHP開發(fā)工具時,我們不僅要考慮其技術(shù)特性和便利性,更要認(rèn)識到工具的本質(zhì):它們是為我們的思維服務(wù)的。每一種工具,無論是輕量級編輯器還是功能強大的集成開發(fā)環(huán)境,都體現(xiàn)了人類智慧的結(jié)晶,設(shè)計它們的初衷是提升我們的工作效率,使我們的思維能夠更加自由地發(fā)散。我們要善于利用工具,讓工具成為我們思維的延伸和拓展,從而更好地完成PHP開發(fā)工作,實現(xiàn)個人價值的最大?化。同時,這也體現(xiàn)了一個重要理念:為促進(jìn)人的全面發(fā)展,我們不僅要注重專業(yè)技能的掌握,更要注重思維能力的提升和人文素養(yǎng)的培?育。在選擇PHP開發(fā)工具時,可以根據(jù)自己的需求和偏好來進(jìn)行選擇。本書以VisualStudioCode為例進(jìn)行詳細(xì)介?紹。工具是為思維服務(wù)的1.2.4

VisualStudioCode的安裝配置VisualStudioCode是由微軟公司推出的一款免費、開源的代碼編輯器。一經(jīng)推出,便受到開發(fā)者的歡迎。VisualStudioCode的特點如?下。(1)輕巧、快速,占用的系統(tǒng)資源較?少。(2)具備智能代碼補全、語法高亮顯示、快捷鍵自定義和代碼匹配等功能。(3)跨平臺。(4)采用方便、實用的界面設(shè)計,能夠?qū)崿F(xiàn)快速查找文件、分屏顯示代碼、自定義主題顏色?等。(5)提供豐富的插件。1.下載和安裝VisualStudioCode(1)登錄VisualStudioCode官方網(wǎng)站。(2)在圖所示的頁面中單擊DownloadforWindows按鈕,該頁面會自動識別當(dāng)前的操作系統(tǒng)并下載相應(yīng)的安裝?包。(3)雙擊安裝包以啟動安裝程?序。(4)安裝完成后,啟動編輯器,VisualStudioCode主界面如圖所?示。

2.安裝中文語言擴展插件VisualStudioCode的默認(rèn)語言是英文,如果想要切換為中文,可通過安裝中文語言擴展插件來實現(xiàn)。單擊VisualStudioCode左側(cè)邊欄中的第5個圖標(biāo)即Extensions(擴展)按鈕,然后在搜索欄中輸入關(guān)鍵詞Chinese,即可找到中文語言擴展插件,單擊Install按鈕進(jìn)行安裝。中文語言擴展插件安裝完成后,需要重新啟動VisualStudioCode,使擴展插件生?效。3.安裝其他擴展插件(1)安裝CodeRunnerCodeRunner是一個通用的代碼運行插件,支持多種程序設(shè)計語言,包括PHP。①

打開VisualStudioCode。②

單擊左側(cè)邊欄的Extensions按鈕(或使用組合鍵Ctrl+Shift+X)。③

在搜索框中輸入CodeRunner。④

在搜索結(jié)果中找到CodeRunner插件,并單擊Install按?鈕。⑤

安裝完成后,單擊“重新加載”按鈕以激活插?件。⑥

激活插件后,可以通過單擊編輯器右上角的RunCode按鈕或使用組合鍵(默認(rèn)為Ctrl+Alt+N)來運行PHP代碼。(2)安裝PHPServer為了方便開發(fā)者在本地環(huán)境中測試和運行PHP代碼,可以安裝PHPServer。通過安裝這樣的插件,開發(fā)者可以輕松地啟動一個內(nèi)置的Web服務(wù)器,該服務(wù)器能夠解析和執(zhí)行PHP腳本,也就是說,可以不啟動集成開發(fā)環(huán)境phpStudy來開發(fā)和調(diào)試PHP程?序。①

打開VisualStudioCode。②

單擊左側(cè)邊欄的Extensions按鈕(或使用組合鍵Ctrl+Shift+X)。③

在搜索框中輸入PHPServer。④

在搜索結(jié)果中找到PHPServer插件,并單擊Install按?鈕。⑤

安裝完成后,單擊“重新加載”按鈕以激活插?件。⑥

激活插件后,可以根據(jù)插件的文檔來配置和啟動本地PHP服務(wù)器。通常在編輯器中右擊文件,選擇PHPServer:Serveproject啟動服務(wù)器運行程序。在PHP開發(fā)工作(或其他編程工作)中,利用CodeGeeX、通義靈碼等人工智能助手,可以顯著提高工作效率。當(dāng)我們正在編寫一個復(fù)雜的算法時,突然遇到了一個難以解決的問題,人工智能助手就會像一個隨時在線的編程伙伴,提供代碼補全、錯誤檢測等功能以及代碼優(yōu)化建?議。然而,在我們得益于這些先進(jìn)技術(shù)的同時,必須牢記:人工智能助手并非萬能的。盡管它們在某些任務(wù)中表現(xiàn)出色,但仍然無法擁有人類的直覺、創(chuàng)造力和深入理解用戶需求的能?力。舉個例子,人工智能助手可以迅速識別并修復(fù)代碼中的語法錯誤,但在面對設(shè)計缺陷或邏輯錯誤時,它們可能就顯得力不從心,這是因為這些錯誤往往涉及更深層次的程序設(shè)計和業(yè)務(wù)邏輯,需要開發(fā)者運用自己的專業(yè)知識和經(jīng)驗來進(jìn)行判斷和解?決。因此,我們應(yīng)該把人工智能助手看作提升工作效率的工具,而不是替代我們思考的“大腦”。在編程的道路上,不斷學(xué)習(xí)和實踐,提升自己的專業(yè)素養(yǎng)和獨立思考能力,才是我們最終的目?標(biāo)。人工智能助手不是萬能的PHP的簡單語法PART031.3.1

PHP的標(biāo)記方式PHP7.0提供了兩種標(biāo)記方式,即標(biāo)準(zhǔn)標(biāo)記和短標(biāo)記,以適應(yīng)不同開發(fā)者的需求和偏?好。1.標(biāo)準(zhǔn)標(biāo)記標(biāo)準(zhǔn)標(biāo)記以<?php開始,并以?>結(jié)束,示例代碼如下。<?phpecho'Hello,PHP!';?>在編寫純PHP文件(即文件中不包含HTML或其他非PHP代碼)時,建議將起始標(biāo)記<?php放置在文件的開端,這樣做可以避免在執(zhí)行結(jié)果中引入不必要的空白字符,從而確保代碼的整潔性。此外,如果文件的末尾沒有緊跟其他內(nèi)容,結(jié)束標(biāo)記?>是可以省略的,這有助于預(yù)防因意外插入空格或換行符而導(dǎo)致潛在問?題。<?phpecho'Hello,PHP!';?>2.短標(biāo)記短標(biāo)記以<?開始,并以?>結(jié)束,示例代碼如下,它提供了一種更為簡潔的代碼標(biāo)記方式,旨在減少代碼的冗余。然而,使用短標(biāo)記之前,必須確保在PHP的配置文件(php.ini)中將short_open_tag選項設(shè)置為On,這是因為短標(biāo)記的可用性取決于服務(wù)器的配置,如果服務(wù)器禁用了這一選項,短標(biāo)記將無法正常工?作。<?echo'Hello,PHP!';?><?echo'Hello,PHP!';?>1.3.2

PHP的注釋方式PHP中的注釋可以分為兩種類型:單行注釋和多行注?釋。1.單行注釋使用//來標(biāo)記單行注釋。這種注釋方式簡潔明了,被廣泛應(yīng)用于各種PHP項目中。echo'Hello,PHP!';//單行注釋2.多行注釋使用/**/來包圍多行注釋。這種注釋方式適用于需要對代碼塊或復(fù)雜邏輯進(jìn)行詳細(xì)說明的場景。 /*

這是一個多行注釋的示例,

可以跨越多行來進(jìn)行詳細(xì)的注釋說明,

有助于其他開發(fā)者更好地理解代碼邏輯。

*/ echo'Hello,PHP!';echo'Hello,PHP!';//單行注釋/*這是一個多行注釋的示例,

可以跨越多行來進(jìn)行詳細(xì)的注釋說明,

有助于其他開發(fā)者更好地理解代碼邏輯。

*/echo'Hello,PHP!';1.3.3

PHP的數(shù)據(jù)輸出方式在PHP編程中,有多種方式可實現(xiàn)數(shù)據(jù)到網(wǎng)頁或終端控制臺的輸出。1.echo語句echo提供一種語言結(jié)構(gòu),用于輸出字符串。可以連續(xù)輸出多個字符串,甚至能夠自動將非字符串型的數(shù)據(jù)(如布爾值、數(shù)字)轉(zhuǎn)換成字符串形式進(jìn)行輸出。echo'長風(fēng)破浪會有時,','直掛云帆濟滄海。'; //輸出“長風(fēng)破浪會有時,直掛云帆濟滄海。”echo'張華的年齡是'.20; //輸出“張華的年齡是20”補充:上述代碼中的,表示多個字符串依次輸出,.是字符串連接運算符。echo'長風(fēng)破浪會有時,','直掛云帆濟滄海。'; //輸出“長風(fēng)破浪會有時,直掛云帆濟滄海。”echo'張華的年齡是'.20; //輸出“張華的年齡是20”2.print語句print和echo功能相近,但它每次只能輸出一個數(shù)據(jù)項。下面是一個例子。print'一日之計在于晨!';//輸出“一日之計在于晨!”3.print_r()函數(shù)print_r()函數(shù)非常有用,它可以輸出包括字符串、數(shù)組等在內(nèi)的任意類型數(shù)據(jù)。print_r('hello'); //輸出helloprint_r($array); //輸出數(shù)組內(nèi)容4.var_dump()函數(shù)var_dump()函數(shù)不僅可以顯示數(shù)據(jù)的內(nèi)容,還能提供關(guān)于數(shù)據(jù)類型的詳細(xì)信息,包括字符串的長度、數(shù)組的元素個數(shù)和類型等。var_dump(2);//輸出int(2)var_dump('PHP','C語言');//分別輸出每個字符串的類型(string)和長度以及字符串內(nèi)容,如string(9)"PHP",緊接著是string(7)"C語言"print'一日之計在于晨!';//輸出“一日之計在于晨!”print_r('hello'); //輸出helloprint_r($array); //輸出數(shù)組內(nèi)容var_dump(2);//輸出int(2)var_dump('PHP','C語言');//分別輸出每個字符串的類型(string)和長度以及字符串內(nèi)容,如string(9)"PHP",緊接著是string(7)"C語言"1.3.4字符串連接運算符在PHP中,.(點)是一個功能強大的字符串連接運算符,它的主要作用是將兩個或多個字符串緊密地連接成一個全新的字符串。先定義一個字符串變量$a,將其賦值為"Hello",隨后,利用.運算符,可以輕松地將"World!"這個字符串附加到$a的尾部,從而創(chuàng)建一個新的字符串"HelloWorld!"。 $a="Hello"; echo$a."World!";//輸出HelloWorld!.運算符能夠自動處理非字符串型的數(shù)據(jù)。在連接操作中遇到非字符串型的數(shù)據(jù),如數(shù)字或布爾值時,PHP會智能地將這些數(shù)據(jù)轉(zhuǎn)換成它們的字符串表示形式,以確保連接的順利進(jìn)行。 echo'result的值是'.4;//輸出“result的值是4”$a="Hello";echo$a."World!";//輸出HelloWorld!echo'result的值是'.4;//輸出“result的值是4”1.3.5換行符的使用1.在Web瀏覽器中實現(xiàn)換行當(dāng)使用PHP生成HTML內(nèi)容并在Web瀏覽器中展示時,可以利用HTML的換行標(biāo)記<br>來插入換行,這是因為瀏覽器會將HTML內(nèi)容解析為富文本,并識別<br>作為換行指令,例如:echo"青年興則國家興,青年強則國家強。<br>";echo"作為新一代的青年人,我們應(yīng)當(dāng)肩負(fù)起時代賦予的重任,努力學(xué)習(xí)PHP等程序設(shè)計語言,為推動國家的科技發(fā)展貢獻(xiàn)自己的力量。";//在瀏覽器中將會分兩行顯示在瀏覽器中執(zhí)行這段代碼后,會顯示出兩行文?本。echo"青年興則國家興,青年強則國家強。<br>";echo"作為新一代的青年人,我們應(yīng)當(dāng)肩負(fù)起時代賦予的重任,努力學(xué)習(xí)PHP等程序設(shè)計語言,為推動國家的科技發(fā)展貢獻(xiàn)自己的力量。";//在瀏覽器中將會分兩行顯示2.在開發(fā)環(huán)境或終端中實現(xiàn)換行如果你在開發(fā)過程中使用的是命令行界面、集成開發(fā)環(huán)境的控制臺輸出,或是通過某些插件(如CodeRunner)同步查看代碼執(zhí)行結(jié)果,那么應(yīng)該使用轉(zhuǎn)義字符\n來插入換行。在這些環(huán)境中,文本通常被視為純文本,不能解析HTML標(biāo)記。echo"青年興則國家興,青年強則國家強。\n";echo"作為新一代的青年人,我們應(yīng)當(dāng)肩負(fù)起時代賦予的重任,努力學(xué)習(xí)PHP等程序設(shè)計語言,為推動國家的科技發(fā)展貢獻(xiàn)自己的力量。";//在開發(fā)環(huán)境或終端中將會分兩行顯示在開發(fā)環(huán)境或終端中執(zhí)行這段代碼后,同樣會顯示出兩行文?本。echo"青年興則國家興,青年強則國家強。\n";echo"作為新一代的青年人,我們應(yīng)當(dāng)肩負(fù)起時代賦予的重任,努力學(xué)習(xí)PHP等程序設(shè)計語言,為推動國家的科技發(fā)展貢獻(xiàn)自己的力量。";//在開發(fā)環(huán)境或終端中將會分兩行顯示編程書寫規(guī)范是確保代碼的質(zhì)量、可讀性和可維護(hù)性的重要準(zhǔn)則。在PHP開發(fā)中,遵循一致的編程書寫規(guī)范至關(guān)重要,它不僅能夠提升團隊協(xié)作效率,還能減少錯誤和降低維護(hù)成?本。1.縮進(jìn)使用4個空格作為縮進(jìn)標(biāo)準(zhǔn),避免使用制表符(Tab)。2.花括號應(yīng)該始終使用花括號包圍代碼塊,即使代碼塊只有一行。花括號的開始應(yīng)該在代碼塊聲明的同一行;花括號的結(jié)束應(yīng)該在新的一行,與代碼塊聲明的縮進(jìn)層級相?同。3.運算符運算符兩側(cè)應(yīng)該有空格,以提高可讀性(例如:$a=$b+$c;)。一元運算符(如!、++、--)應(yīng)該與操作數(shù)緊密相連,兩者間不需要空?格。PHP編程書寫規(guī)范本項目從搭建與配置PHP開發(fā)環(huán)境開始,逐步引導(dǎo)讀者熟悉并掌握PHP的基本語法結(jié)構(gòu)。在此過程中,讀者將通過創(chuàng)建PHP文件、編寫簡單的PHP程序,體驗從構(gòu)思到代碼實現(xiàn)的全過程。任務(wù)1-1搭建PHP開發(fā)環(huán)境1.選擇合適的操作系統(tǒng)根據(jù)個人喜好和熟悉程度,選擇一個適合的操作系統(tǒng),如Windows、Linux等。2.搭建集成開發(fā)環(huán)境為了簡化開發(fā)流程,推薦安裝集成開發(fā)環(huán)境。3.安裝PHP開發(fā)工具選擇一個適合的PHP開發(fā)工具是提升開發(fā)效率的關(guān)鍵。推薦使用VisualStudioCode。4.配置VisualStudioCode建議在VisualStudioCode中安裝以下插件:中文語言擴展插件(以便更好地理解和使用軟件界面)、CodeRunner插件(用于快速運行代碼片段)以及PHPServer插件(用于在本地搭建PHP服務(wù)器環(huán)境)。5.集成開發(fā)環(huán)境的配置在當(dāng)前階段,如果我們不進(jìn)行數(shù)據(jù)庫操作,可以暫時不啟動phpStudy等集成開發(fā)環(huán)境。我們可以利用VisualStudioCode中的PHPServer插件來替代傳統(tǒng)的Web服務(wù)器。任務(wù)1-2創(chuàng)建PHP文件(1)在Web服務(wù)器的根目錄下創(chuàng)建一個新的文件夾,將其命名為my_first_project。(2)在該文件夾中創(chuàng)建一個新的PHP文件,將其命名為index.php,如圖所示。任務(wù)1-3編寫PHP代碼在index.php文件中,輸入如下代碼。<?phpecho"<h1>項目1

啟程探索PHP世界—PHP編程入門</h1>";echo"<p>通過本項目的實踐環(huán)節(jié),每一位讀者都能堅定地邁出探索PHP世界的第一步。這不僅是一次基礎(chǔ)知識的學(xué)習(xí),更是一次編程思維的鍛煉和能力的提升。</p>";echo"<p>通過本課程,讀者將掌握PHP的基礎(chǔ)知識,包括變量、數(shù)據(jù)類型、運算符、控制結(jié)構(gòu)、函數(shù)、數(shù)組、字符串等;同時,讀者還將掌握PHP的進(jìn)階知識,包括面向?qū)ο蟪绦蛟O(shè)計、異常處理、文件操作、數(shù)據(jù)庫操作等。</p>";?>

要在瀏覽器中查看代碼執(zhí)行結(jié)果,可以在編輯器中右擊文件,并選擇PHPServer:Serveproject來啟動內(nèi)置的服務(wù)器。一旦服務(wù)器啟動,就可以在Web瀏覽器中查看代碼的執(zhí)行結(jié)果。<?phpecho"<h1>項目1

啟程探索PHP世界—PHP編程入門</h1>";echo"<p>通過本項目的實踐環(huán)節(jié),每一位讀者都能堅定地邁出探索PHP世界的第一步。這不僅是一次基礎(chǔ)知識的學(xué)習(xí),更是一次編程思維的鍛煉和能力的提升。</p>";echo"<p>通過本課程,讀者將掌握PHP的基礎(chǔ)知識,包括變量、數(shù)據(jù)類型、運算符、控制結(jié)構(gòu)、函數(shù)、數(shù)組、字符串等;同時,讀者還將掌握PHP的進(jìn)階知識,包括面向?qū)ο蟪绦蛟O(shè)計、異常處理、文件操作、數(shù)據(jù)庫操作等。</p>";?>

如果想在終端或控制臺中快速查看代碼的執(zhí)行結(jié)果。<?phpecho"項目1啟程探索PHP世界—PHP編程入門\n";echo"通過本項目的實踐環(huán)節(jié),每一位讀者都能堅定地邁出探索PHP世界的第一步。這不僅是一次基礎(chǔ)知識的學(xué)習(xí),更是一次編程思維的鍛煉和能力的提升。\n";echo"通過本課程,讀者將掌握PHP的基礎(chǔ)知識,包括變量、數(shù)據(jù)類型、運算符、控制結(jié)構(gòu)、函數(shù)、數(shù)組、字符串等;同時,讀者還將掌握PHP的進(jìn)階知識,包括面向?qū)ο蟪绦蛟O(shè)計、異常處理、文件操作、數(shù)據(jù)庫操作等。";?>

若要運行這段修改后的代碼,可以單擊編輯器右上角的RunCode按鈕,或右擊文件并選擇RunCode命令,或使用默認(rèn)的組合鍵(通常是Ctrl+Alt+N)。<?phpecho"項目1啟程探索PHP世界—PHP編程入門\n";echo"通過本項目的實踐環(huán)節(jié),每一位讀者都能堅定地邁出探索PHP世界的第一步。這不僅是一次基礎(chǔ)知識的學(xué)習(xí),更是一次編程思維的鍛煉和能力的提升。\n";echo"通過本課程,讀者將掌握PHP的基礎(chǔ)知識,包括變量、數(shù)據(jù)類型、運算符、控制結(jié)構(gòu)、函數(shù)、數(shù)組、字符串等;同時,讀者還將掌握PHP的進(jìn)階知識,包括面向?qū)ο蟪绦蛟O(shè)計、異常處理、文件操作、數(shù)據(jù)庫操作等。";?>

如果終端中出現(xiàn)亂碼,需要配置環(huán)境變量,確保將phpStudy中的PHP解釋器文件路徑添加到系統(tǒng)環(huán)境變量中,如圖所?示。輸出個人信息【實訓(xùn)目的】練習(xí)PHP開發(fā)環(huán)境的搭建與配置,熟悉PHP的基本語法,并能夠編寫簡單的PHP程?序。【實訓(xùn)內(nèi)容】實現(xiàn)圖所示的效?果。【具體要求】在網(wǎng)頁上輸出個人信息,具體要求如?下。①

創(chuàng)建PHP文件(如test.php)。②

編寫代碼,使用輸出語句輸出個人信息(包括姓名、年齡、性別、愛好、專業(yè)等)。③

每項信息單獨占一行,確保清晰易?讀。④

在瀏覽器中訪問PHP文件。本項目通過啟程探索PHP世界,幫助讀者掌握了PHP開發(fā)環(huán)境的搭建與配置,熟悉了PHP的簡單語法,并學(xué)會編寫簡單的PHP程序等。項目1知識點如圖所?示。PHP安全技術(shù)簡介PHP是一種應(yīng)用廣泛的服務(wù)器端腳本語言,它在互聯(lián)網(wǎng)發(fā)展中扮演著重要的角色,當(dāng)然也涉及網(wǎng)絡(luò)安全方面。PHP主要用于Web開發(fā),但自身存在一定的網(wǎng)絡(luò)安全風(fēng)險。一些常見的PHP安全問題包括結(jié)構(gòu)查詢語言(StructureQueryLanguage,SQL)注入、跨站腳本攻擊(Cross-SiteScripting,XSS)等,這些問題可能會導(dǎo)致應(yīng)用程序被黑客攻擊,造成數(shù)據(jù)泄露等嚴(yán)重后?果。為了解決這些問題,網(wǎng)絡(luò)安全專業(yè)人士開發(fā)了許多PHP安全技術(shù)。一種常見的技術(shù)是輸入過濾,包括對參數(shù)進(jìn)行類型轉(zhuǎn)換、使用trim()函數(shù)去除字符串左右兩端的空白字符、使用intval()函數(shù)將字符串轉(zhuǎn)換為整型數(shù)據(jù)等。此外,對密碼和用戶名進(jìn)行加密和處理、使用參數(shù)化查詢和預(yù)編譯語句、安全的文件上傳和處理、安全的會話管理、安全的跨站腳本攻擊防護(hù)等也是重要的防御策?略。同時,為了避免PHP注入問題,網(wǎng)絡(luò)安全專家建議采用更安全的編程實現(xiàn)方式,如利用靜態(tài)分析工具進(jìn)行自動化檢測、避免使用需要管理員權(quán)限的數(shù)據(jù)庫連接等。此外,對于Web滲透測試,學(xué)習(xí)后端語言如PHP,了解簡單的代碼編寫方法、GET和POST請求、Cookie、HTTPHeaders等也是十分必要?的。謝

謝智能BMI計算

與健身運動推薦系統(tǒng)

——語法基礎(chǔ)項目2張華在日常鍛煉中深刻體會到,為了更有效地提升自己的體質(zhì)和健康狀況,經(jīng)常需要對身體指標(biāo)進(jìn)行精確評估,如測量體重、計算BMI值等。身為健身愛好者,他萌生了一個想法:研發(fā)一款智能BMI計算與健身運動推薦系統(tǒng),以幫助同學(xué)們更科學(xué)、更合理地選擇適合自己的運動方式。通過這個系統(tǒng),同學(xué)們可以準(zhǔn)確地了解自己的身體狀況,從而制定出更為個性化的健身計劃,選擇出更為合適的運動項目。智能BMI計算與健身運動推薦系統(tǒng)理解標(biāo)識符與關(guān)鍵字的區(qū)別和用法;掌握變量的聲明和使用方法、常量的概念和聲明方式;理解不同類型的表達(dá)式及其在PHP中的應(yīng)用;掌握PHP中的基本數(shù)據(jù)類型(整型、浮點型、布爾型、字符串型、數(shù)組、對象、資源等);掌握各種運算符的用法和優(yōu)先級。能夠正確地使用標(biāo)識符和關(guān)鍵字編寫PHP代碼;能夠聲明和使用變量進(jìn)行數(shù)據(jù)存儲和操作、聲明和使用常量表示不變化的數(shù)據(jù);能夠運用不同類型的表達(dá)式進(jìn)行計算和邏輯判斷;能夠熟練使用PHP的基本數(shù)據(jù)類型進(jìn)行數(shù)據(jù)處理;能夠運用各種運算符進(jìn)行數(shù)學(xué)計算和邏輯判斷。培養(yǎng)良好的編程習(xí)慣,如使用有意義的標(biāo)識符和注釋;提高解決問題的能力,能夠根據(jù)實際情況選擇合適的數(shù)據(jù)類型和運算符;培養(yǎng)邏輯思維能力,能夠編寫結(jié)構(gòu)清晰、邏輯性強的PHP代碼。變量和常量標(biāo)量數(shù)據(jù)類型運算符表達(dá)式數(shù)據(jù)類型的轉(zhuǎn)換變量和常量PART01在PHP中,經(jīng)常需要定義一些符號來代表程序中的實體,如變量名、函數(shù)名、類名等,這些符號被稱為標(biāo)識符。為了確保代碼的清晰和一致性,在命名標(biāo)識符時需要遵循以下規(guī)則。(1)僅可由字母、數(shù)字、下畫線組成。(2)不能以數(shù)字開頭,以避免與數(shù)值混淆。(3)用作變量名時,區(qū)分大小寫。2.1.1標(biāo)識符關(guān)鍵字是PHP中已經(jīng)定義好并賦予特殊含義的標(biāo)識符,也稱作保留字。需要注意,關(guān)鍵字不能作為常量、函數(shù)名或類名等使用,表所示為PHP中常見的關(guān)鍵字。2.1.2關(guān)鍵字變量,顧名思義,就是其值可以變化的量。1.變量的命名變量的命名遵循之前提到的標(biāo)識符命名規(guī)則,但有一些特定的要點需要強調(diào)。(1)在PHP中,所有變量名都必須以美元符號($)開頭。(2)包含字母、數(shù)字、下畫線,但不能以數(shù)字開頭,也不能包含空格或其他非法字符。(3)區(qū)分大小寫的。(4)不能使用PHP中的關(guān)鍵字。通過遵循這些規(guī)則,確保變量名的合法性和一致性,從而編寫出更加清晰、易于維護(hù)的PHP代碼。2.1.3變量2.變量的賦值在PHP中,通過3種方式為變量賦值:直接賦值、傳值賦值和引用賦值。(1)直接賦值直接賦值是指將一個具體的值賦給某個變量,其基本語法格式是“$變量名=值”:$name指向字符串'Jack'在內(nèi)存中的位置,$age指向數(shù)字20的位置。2.1.3變量$name='Jack';//將字符串'Jack'賦給變量$name$age=20; //將數(shù)字20賦給變量$age2.變量的賦值(2)傳值賦值傳值賦值意味著將一個變量的值復(fù)制到另一個變量中:$x和$y都指向數(shù)字20,但是它們各自獨立,改變$y的值不會影響$x的值。2.1.3變量$x=20;$y=$x;//將$x的值復(fù)制到$y中echo$x;//輸出20echo$y;//輸出202.變量的賦值(3)引用賦值引用賦值是指在PHP中,通過在一個變量前添加&符號來創(chuàng)建一個引用,該引用指向另一個已存在的變量。例如:$m和$n均指向數(shù)字20。當(dāng)改變其中一個變量的值時,另一個變量的值也會隨之改變。通過這種方式,我們可以實現(xiàn)多個變量之間的數(shù)據(jù)同步更新。2.1.3變量$m=20;$n=&$m;//$n引用了$mecho$n;//輸出20$m=200;echo$n;//輸出200,因為$n引用的是$m的值,所以$m的變化會反映在$n上3.變量的分類變量在代碼中的可訪問范圍稱為變量的作用域。根據(jù)作用域的不同,可將變量分為局部變量和全局變量。(1)局部變量局部變量具有局限性,其作用域通常限制在特定的程序區(qū)域。局部變量是定義在函數(shù)內(nèi)部、主程序或全局代碼塊(如循環(huán)、條件語句等)、其他局部作用域內(nèi)(控制結(jié)構(gòu)如try-catch塊、with語句等)中的變量,對于其聲明區(qū)域之外的代碼是不可訪問的。(2)全局變量全局變量的作用域涵蓋整個程序,這意味著它們可以在程序的任何部分被訪問,包括在用戶定義的代碼塊(如函數(shù)、類等)內(nèi)部。2.1.3變量4.可變變量為了方便在開發(fā)時動態(tài)地改變一個變量的名稱,PHP提供了一種特殊的變量—可變變量。通過可變變量,可以將一個變量的值作為該變量的名稱。可變變量的實現(xiàn),需要在一個變量前多加一個$符號,其語法格式如下。$$a表示將$a的值作為變量名,即$say。以上代碼的執(zhí)行結(jié)果如圖所示。2.1.3變量$a='say';$say='Hello';$Hello='Lihua';echo'$a的值:',$a;echo'<br>';echo'$$a的值:',$$a;echo'<br>';echo'$$$a的值:',$$$a;echo'<br>';假設(shè)你正在開發(fā)一個簡單的商品管理系統(tǒng),需要定義4個變量分別用于存放商品名稱、商品價格、商品廠家、商品數(shù)量并輸出其值。編寫php文件,實現(xiàn)商品信息的定義和輸出。【案例實踐2-1】輸出商品信息<?php$itemName='鼠標(biāo)';$itemPrice='49.9元';$itemProducer='羅技';$itemCount='82個';echo'<h3>商品信息</h3>';echo'商品名稱:'.$itemName.'<br>';echo'商品價格:'.$itemPrice.'<br>';echo'商品廠家:'.$itemProducer.'<br>';echo'商品數(shù)量:'.$itemCount.'<br>';?>啟動內(nèi)置服務(wù)器,在瀏覽器中打開php文件。【案例實踐2-1】輸出商品信息(1)變量名對于變量,應(yīng)該使用小駝峰命名法(camelCase)。(2)常量名常量名應(yīng)該全部大寫,使用下畫線分隔單詞(例如:MAX_FILE_SIZE)。(3)函數(shù)名對于函數(shù),應(yīng)該使用小駝峰命名法,且首字母小寫。函數(shù)名應(yīng)該是動詞或動詞短語。(4)數(shù)組名數(shù)組名應(yīng)該遵循與變量名相同的命名規(guī)范。如果是關(guān)聯(lián)數(shù)組,建議使用有意義的鍵名。(5)類名使用大駝峰命名法(PascalCase),且類名必須是名詞(例如:UserController)。(6)類文件名類文件名應(yīng)該與類名命名規(guī)范保持一致,使用大駝峰命名法。類文件的擴展名應(yīng)該是.php(例如:UserController.php)。編程命名規(guī)范(7)與數(shù)據(jù)庫相關(guān)的命名數(shù)據(jù)庫表名應(yīng)該全部小寫并以下畫線分隔單詞(例如:user_info),數(shù)據(jù)庫列名也應(yīng)該遵循相同的命名規(guī)范。此外,還有一些其他的編程規(guī)范建議。

使用有意義的變量名和函數(shù)名,避免使用無意義的名稱(如$a、$b等)。

注釋應(yīng)該清晰明了,應(yīng)解釋代碼的目的和功能,而不是描述代碼本?身。

避免使用過長的函數(shù)名和類名,保持代碼的簡潔和模塊?化。

遵循面向?qū)ο蟪绦蛟O(shè)計原則,以提高代碼的可擴展性和可維護(hù)?性。編程命名規(guī)范常量是在程序運行過程中其值始終保持不變的數(shù)據(jù)。一旦為常量分配了值,就不能再修改或重新定義它。在PHP中,通常使用大寫字母對常量進(jìn)行命名,以區(qū)分常量與變量。常量包括自定義常量和預(yù)定義常量。2.1.4常量1.自定義常量自定義常量使用大寫字母定義常量名稱。自定義常量分別是使用define()和const定義。(1)define()函數(shù)define()函數(shù)可以同時定義常量的名稱、常量的值,并設(shè)置常量名是否區(qū)分大小寫。具體應(yīng)用如下。2.1.4常量define($name,$value[,$case_insensitive]);define('PI',3.1415926);define('name','張華');echoPI;//輸出3.1415926echoname;//輸出“張華”1.自定義常量(2)const關(guān)鍵字在PHP中,還可以使用const關(guān)鍵字來定義常量,這種方法更為簡潔。2.1.4常量constR=6;echo'R=',R;//輸出R=6//PHP7.0支持利用表達(dá)式對常量進(jìn)行賦值constP=2*R;echo'P=',P;//輸出P=122.預(yù)定義常量預(yù)定義常量也稱作魔術(shù)常量。預(yù)定義常量的使用方法和自定義常量的相同,但往往不區(qū)分大小寫。表所示是PHP中常見的預(yù)定義常量。注意__FILE__、__LINE__等預(yù)定義常量中的__是指兩條下畫線。2.1.4常量假設(shè)你正在開發(fā)一個簡單的商品管理系統(tǒng),根據(jù)需求,商品信息中需要添加一些表示商品折扣信息的常量(如商品狀態(tài)、折扣百分比)。編寫php文件,實現(xiàn)商品折扣信息的定義和輸出。【案例實踐2-2】輸出商品折扣信息<?php//輸出商品信息同案例實踐2-1define('ITEM_AVAILABLE','正在打折'); //定義一個商品狀態(tài)常量define('DISCOUNT_PERCENTAGE',10); //定義一個折扣百分比常量//告知消費者echo'<h3>商品折扣信息</h3>';echo"商品狀態(tài):".ITEM_AVAILABLE."<br>";echo"商品折扣為原價的百分之".DISCOUNT_PERCENTAGE."<br>";//嘗試修改常量值(這將導(dǎo)致錯誤)//define('DISCOUNT_PERCENTAGE',20);//這行代碼會導(dǎo)致嚴(yán)重錯誤?>運行結(jié)果如圖所示。【案例實踐2-2】輸出商品折扣信息標(biāo)量數(shù)據(jù)類型PART02在程序開發(fā)中,往往需要對數(shù)據(jù)進(jìn)行操作,每個數(shù)據(jù)都有其對應(yīng)的數(shù)據(jù)類型。PHP是一種弱類型語言,這意味著在定義變量時,不需要顯式聲明其數(shù)據(jù)類型,PHP會根據(jù)賦予變量的值來判斷其數(shù)據(jù)類型。PHP支持的數(shù)據(jù)類型可以分為3類,分別為標(biāo)量數(shù)據(jù)類型、復(fù)合數(shù)據(jù)類型和特殊數(shù)據(jù)類型,如圖所示。2.2標(biāo)量數(shù)據(jù)類型在PHP中,布爾型(boolean)是一種基本的數(shù)據(jù)類型,通常用于邏輯計算。布爾型數(shù)據(jù)只有兩個值,用于表示事物的真(true)或假(false),true和false不區(qū)分大小寫。若要定義布爾型數(shù)據(jù),只需要將true或false賦給變量即可。布爾型變量常作為表達(dá)式的結(jié)果用于流程控制。2.2.1布爾型$var1=true; //將true賦給變量$var1$var2=false; //將false賦給變量$var2整型用于表示整數(shù),它可以表示為八進(jìn)制數(shù)、十進(jìn)制數(shù)、十六進(jìn)制數(shù)或二進(jìn)制數(shù),并且在數(shù)值前可以添加+或-符號,以區(qū)分正整數(shù)和負(fù)整數(shù)。具體來說,如果是八進(jìn)制數(shù),就在數(shù)值前加0;如果是十六進(jìn)制數(shù),則在數(shù)值前加0x;如果是二進(jìn)制數(shù),則在數(shù)值前加0b。在32位系統(tǒng)中,整型數(shù)據(jù)的取值范圍是-2147483648~2147483647;在64位系統(tǒng)中,整型數(shù)據(jù)的取值范圍是-9223372036854775808~9223372036854775807。當(dāng)整型數(shù)據(jù)的值大于系統(tǒng)的取值范圍時,將被自動轉(zhuǎn)換成浮點型數(shù)據(jù)。2.2.2整型$num1=0; //定義十進(jìn)制整型數(shù)據(jù)0$num2=123; //定義十進(jìn)制整型數(shù)據(jù)123$num3=-123; //定義十進(jìn)制整型數(shù)據(jù)-123$num4=0b1111011; //定義二進(jìn)制整型數(shù)據(jù)(等于十進(jìn)制數(shù)123)$num5=0173; //定義八進(jìn)制整型數(shù)據(jù)(等于十進(jìn)制數(shù)123)$num6=0x7D; //定義十六進(jìn)制整型數(shù)據(jù)(等于十進(jìn)制數(shù)123)浮點型用于表示小數(shù),也稱為浮點數(shù)、雙精度數(shù)或?qū)崝?shù)。浮點型數(shù)據(jù)的有效位數(shù)是14位,有效位數(shù)是指從最左邊第一個不為0的數(shù)開始,直到末尾數(shù)的個數(shù),不包括小數(shù)點。浮點型數(shù)據(jù)有兩種表示格式,分別是標(biāo)準(zhǔn)格式和科學(xué)記數(shù)法格式。使用標(biāo)準(zhǔn)格式定義浮點型數(shù)據(jù)如下。使用科學(xué)記數(shù)法格式定義浮點型數(shù)據(jù)如下。2.2.3浮點型$pi=3.1415;$r=2.5;$a=4.567E-2;//定義浮點型數(shù)據(jù)0.04567$b=5.678E-4;//定義浮點型數(shù)據(jù)0.0005678字符串由數(shù)字、字母和符號組成,是連續(xù)的字符序列。PHP中可以使用單引號、雙引號、heredoc結(jié)構(gòu)和nowdoc結(jié)構(gòu)定義字符串。(1)單引號字符串的簡單定義方式就是使用單引號將字符串引起來。使用單引號定義字符串時,不能解析字符串中的變量。2.2.4字符串型$str1='山重水復(fù)疑無路,柳暗花明又一村。'; //使用單引號定義字符串$str2='張華說:"只要功夫深,鐵杵磨成針!"'; //單引號中使用雙引號$str3='Hesaid,"I\'mfondofPHP.".'; //對單引號進(jìn)行轉(zhuǎn)義$name='小明';echo'$name=',$name;(2)雙引號使用雙引號將字符串引起來,如果字符串中也包含雙引號,需要將字符串中的雙引號用轉(zhuǎn)義符\轉(zhuǎn)義后定義和輸出。雙引號字符串中,可以使用多種轉(zhuǎn)義字符來插入特殊字符。區(qū)別于單引號,使用雙引號定義字符串時,字符串中的變量會被析,會顯示變量的值。2.2.4字符串型$str1="路漫漫其修遠(yuǎn)兮,吾將上下而求索。";//使用雙引號定義字符串$str2="要想生活過得去,就得學(xué)會\"放下\"。";//對雙引號進(jìn)行轉(zhuǎn)義$str3="Hesaid,\"I'mfondofPHP.\".";//對雙引號進(jìn)行轉(zhuǎn)義(3)heredoc結(jié)構(gòu)在構(gòu)建包含變量和HTML標(biāo)簽的復(fù)雜字符串時,heredoc結(jié)構(gòu)尤為有用。具體參數(shù)說明如下。<<<:定界符(PHP4之后支持),表示heredoc結(jié)構(gòu)的開始,為固定用法。開始標(biāo)識符:自定義的一個標(biāo)識符,用于強調(diào)字符串的開始。結(jié)束標(biāo)識符:與開始標(biāo)識符名稱相同,用于強調(diào)字符串的結(jié)束。2.2.4字符串型<<<開始標(biāo)識符字符串內(nèi)容結(jié)束標(biāo)識符;(4)nowdoc結(jié)構(gòu)使用nowdoc結(jié)構(gòu)定義字符串的語法格式與使用heredoc結(jié)構(gòu)定義的相似,區(qū)別是開始標(biāo)識符必須由單引號引起來。2.2.4字符串型<<<'開始標(biāo)識符'字符串內(nèi)容結(jié)束標(biāo)識符;(5)字符串結(jié)構(gòu)比較我們已經(jīng)了解了4種定義字符串的方式,它們之間的主要差異如下所?述。

使用雙引號或heredoc結(jié)構(gòu)來定義字符串時,其中的變量將會被自動解析。這種方式在處理包含動態(tài)字符串時非常有?用。

使用單引號或nowdoc結(jié)構(gòu)定義字符串,字符串中的變量則不會被解析。這種方式在處理靜態(tài)字符串或不需要解析變量的場景中更為高?效。

在單引號定義的字符串內(nèi),僅有單引號(')和反斜線(\)需要經(jīng)轉(zhuǎn)義處理,這使得其處理方式相對簡?潔。

雙引號定義的字符串支持更為豐富的轉(zhuǎn)義字符,為開發(fā)者提供了更高的靈活性和便利?性。2.2.4字符串型PHP提供了一系列函數(shù),用于檢測數(shù)據(jù)的類型。下表所示為常用的數(shù)據(jù)類型檢測函數(shù)。上表中函數(shù)的返回值為布爾型的檢測結(jié)果,如果返回true則表示數(shù)據(jù)類型符合要求,如果返回false則表示數(shù)據(jù)類型不符合要求。2.2.5數(shù)據(jù)類型的檢測運算符PART03按照操作數(shù)的個數(shù)可以將運算符分為單目運算符(只有1個操作數(shù))、雙目運算符(有2個操作數(shù))和三目運算符(有3個操作數(shù))。1.單目運算符單目運算符只有1個操作數(shù),常見的單目運算符有++、--等。2.雙目運算符雙目運算符有2個操作數(shù)。雙目運算符是較常用的。2.3.1運算符的分類$x++;//$x自增1$y--;//$y自減1$sum=$x+$y;//加法$difference=$x-$y;//減法$product=$x*$y;//乘法$quotient=$x/$y;//除法3.三目運算符三目運算符又稱為三元運算符,唯一的一個三目運算符是條件運算符,用于實現(xiàn)簡單的條件判斷,根據(jù)條件表達(dá)式的結(jié)果執(zhí)行不同的表達(dá)式。在該語法格式中,需要先判斷條件表達(dá)式的結(jié)果是否為真,如果結(jié)果為真,則返回表達(dá)式1的執(zhí)行結(jié)果;如果結(jié)果為假,則返回表達(dá)式2的執(zhí)行結(jié)果。2.3.1運算符的分類<條件表達(dá)式>?<表達(dá)式1>:<表達(dá)式2>在PHP中,可以在一個三目運算符的條件表達(dá)式中嵌套另一個三目運算符。這種嵌套使得在單個表達(dá)式中能夠執(zhí)行更復(fù)雜的條件邏輯。例如,為了找出3個數(shù)中的最大值,可以這樣寫。在這個例子中,首先比較$a和$b。如果$a大于$b,接著比較$a和$c,選擇兩者中的較大值;如果$a不大于$b,則比較$b和$c,選擇其中的較大值。三目運算符嵌套$a=10;$b=5;$c=2;$result=($a>$b)?(($a>$c)?$a:$c):(($b>$c)?$b:$c);echo"它們中的最大值為:".$result;//輸出“它們中的最大值為:10”算術(shù)運算符是簡單、常用的運算符,主要用來處理算術(shù)運算操作。PHP中常用的算術(shù)運算符如下表所示。2.3.2算術(shù)運算符下面是一些使用算術(shù)運算符的示例。2.3.2算術(shù)運算符//加法運算符示例$sum=5+10;//結(jié)果為15echo$sum.'<br>';//輸出15//減法運算符示例$difference=5-10;//結(jié)果為-5echo$difference.'<br>';//輸出-5//取模運算符示例echo12%5;//輸出2,因為12除以5余2//冪運算符示例echo2**3;//輸出8,因為2的3次方等于8假設(shè)你正在開發(fā)一個商品管理系統(tǒng),并且已經(jīng)定義了商品的原價和折扣率。接下來,將計算商品的折扣價格,并將結(jié)果展示給消費者。【案例實踐2-3】計算商品折扣信息<?php//輸出商品信息同案例實踐2-1//輸出商品折扣信息同案例實踐2-2//$itemPrice已經(jīng)在前面的代碼中定義并被賦值為“商品價格”//DISCOUNT_PERCENTAGE是已經(jīng)在前面的代碼中定義并被賦值的折扣率常量,值為20//將商品價格轉(zhuǎn)換為浮點數(shù)以確保計算的準(zhǔn)確性$itemPrice=(float)$itemPrice;//計算折扣價格:原價乘以折扣率再除以100$itemDiscountPrice=$itemPrice*(DISCOUNT_PERCENTAGE/100);//展示折扣價格給消費者echo"<b>商品折扣價格為{$itemDiscountPrice}元</b><br>";?>運行結(jié)果如圖所示。【案例實踐2-3】計算商品折扣信息賦值運算符在編程中起著至關(guān)重要的作用,它們用于將數(shù)據(jù)值賦給變量。賦值運算可以分為兩種類型:簡單賦值運算和復(fù)合賦值運算。PHP中常用的賦值運算符如下表所示。2.3.3賦值運算符在PHP中,可以使用=同時對多個變量進(jìn)行賦值,這種賦值語句的執(zhí)行順序是從右至左,例如:2.3.3賦值運算符$a=$b=$c=1; //3個變量都被賦值為1復(fù)合賦值運算符如+=、-=、*=、/=、%=、**=和.=,在使用時,會先對左側(cè)變量與右側(cè)值執(zhí)行對應(yīng)的算術(shù)運算或字符串連接操作,然后將運算結(jié)果重新賦給左側(cè)的變量。2.3.3賦值運算符//加并賦值(+=)$a=2;$b=3;$a+=$b;//等同于$a=$a+$b;echo$a.'<br>';//輸出5echo$b.'<br>';//輸出3,因為$b的值沒有改變//按照同樣的方式,可以嘗試其他復(fù)合賦值運算符...//連接并賦值(.=)$c='Hello';$d='World';$c.=$d;//等同于$c=$c.$d;echo$c.'<br>';//輸出HelloWorldecho$d.'<br>';//輸出World,$d的值保持不變比較運算符用于對兩個變量或兩個表達(dá)式進(jìn)行比較,其結(jié)果返回一個布爾型的值true或false。PHP中常用的比較運算符如下表所示。2.3.4比較運算符2.3.4比較運算符在PHP中,不同類型的值之間也可以進(jìn)行比較。這時,PHP會自動進(jìn)行類型轉(zhuǎn)換以完成比較。$a=2;$b=3;//使用==判斷$a和$b的值是否相等var_dump($a==$b);//輸出bool(false),因為2不等于3var_dump($a==2);//輸出bool(true),因為2等于2//使用===判斷$a和$b的值和類型是否都完全相同var_dump($a===$b);//輸出bool(false),因為值不相等var_dump($a===2);//輸出bool(true),因為值和類型都相同//使用!=判斷$a和$b的值是否不相等var_dump($a!=$b);//輸出bool(true),因為2不等于3var_dump($a!=2);//輸出bool(false),因為2等于2//使用!==判斷$a和$b的值和類型是否不全相等var_dump($a!==$b);//輸出bool(true),因為值不相等//由于$a和$b都是整型,但值不相等,所以結(jié)果為true//使用>判斷$a是否大于$bvar_dump($a>$b);//輸出bool(false),因為2不大于3var_dump($a>1);//輸出bool(true),因為2大于1邏輯運算符用于邏輯判斷,其返回值與比較運算符的一致,為布爾型。PHP中常用的邏輯運算符如下表所示。2.3.5邏輯運算符在PHP編程中,邏輯運算符經(jīng)常與流程控制語句(如if語句、while語句等)結(jié)合使用,用于構(gòu)建復(fù)雜的條件判斷結(jié)構(gòu)。此外,需要注意的是,在邏輯運算中,某些值會被自動轉(zhuǎn)換為false,這些值包括空值(null)、0、false、空字符串('''')、空數(shù)組(array())以及空對象(newstdClass())等。2.3.5邏輯運算符$a=2;$b=0;//與運算符示例var_dump($a&&$b);//輸出bool(false),因為$b為0,被視為falsevar_dump($aand$b);//輸出bool(false)//或運算符示例var_dump($a||$b);//輸出bool(true),因為$a為2,被視為truevar_dump($aor$b);//輸出bool(true)//非運算符示例var_dump(!$a);//輸出bool(false),因為$a不為0,被視為true,取反后為falsevar_dump(!$b);//輸出bool(true),因為$b為0,被視為false,取反后為true//異或運算符示例var_dump($axor$b);//輸出bool(true),因為$a和$b的布爾值不同運算符的優(yōu)先級由它們之間的關(guān)聯(lián)性決定。下表所示為PHP中運算符的優(yōu)先級。2.3.6運算符的優(yōu)先級假設(shè)你正在開發(fā)一個簡單的商品管理系統(tǒng),已經(jīng)定義了商品信息和商品折扣信息,需要根據(jù)商品的進(jìn)價,判斷該商品以當(dāng)前折扣出售能否有盈利。【案例實踐2-4】計算商品盈利<?php//輸出商品信息同案例實踐2-1//輸出商品折扣信息同案例實踐2-2//輸出商品折扣價格同案例實踐2-3//判斷商品是否有盈利$itemCostPrice=16.8;$itemProfit=$itemDiscountPrice-$itemCostPrice;$result=$itemProfit>0?"該商品以該折扣價格出售有盈利":"該商品以該折扣價格出售無盈利";echo"<b>{$result}</b>;?>運行結(jié)果如圖所示。【案例實踐2-4】計算商品折扣信息表達(dá)式PART04在PHP中,表達(dá)式是操作數(shù)和運算符組成的式子,是編程的基礎(chǔ)組件,它們能夠執(zhí)行特定的操作并產(chǎn)生一個結(jié)果。這些操作可以是非常簡單的算術(shù)運算,也可以是復(fù)雜的邏輯判斷或函數(shù)調(diào)用。表達(dá)式的結(jié)果根據(jù)其內(nèi)容和上下文,可能是一個具體的數(shù)值、一個對象,或者是一個布爾值。2.4表達(dá)式1.賦值表達(dá)式賦值表達(dá)式不僅用于為變量分配一個值,而且它本身也作為一個表達(dá)式存在,其結(jié)果為賦值運算符右邊的式子的值,例如:在上述代碼中,$a=2就是一個賦值表達(dá)式,它不僅將2賦給變量$a,而且該表達(dá)式的值也是2。2.4表達(dá)式<條件表達(dá)式>?<表達(dá)式1>:<表達(dá)式2>2.比較表達(dá)式比較表達(dá)式用于比較兩個值,并返回一個布爾值,表示這兩個值是否滿足特定的比較條件,例如:在這個例子中,($b==2)是一個比較表達(dá)式,其結(jié)果是一個布爾值,如果$b確實等于2,那么結(jié)果為true,否則為false。2.4表達(dá)式$b=2;$isEqual=($b==2);//這是一個比較表達(dá)式,判斷$b是否等于23.表達(dá)式的靈活應(yīng)用表達(dá)式具有靈活性和多樣性,PHP編程可以實現(xiàn)更加豐富和強大的功能。2.4表達(dá)式$a=1;//賦值表達(dá)式,將整數(shù)1賦給變量$a$b=2;//賦值表達(dá)式,將整數(shù)2賦給變量$becho$a=1;//輸出賦值表達(dá)式$a=1的結(jié)果,即1echo$b+4;//輸出算術(shù)表達(dá)式$b+4的結(jié)果,即6echo5,6;//輸出兩個表達(dá)式5和6的值,這里會先輸出5然后輸出6$isEqual=($a==$b);//比較表達(dá)式,判斷$a和$b是否相等,并將結(jié)果存儲在$isEqual中if($isEqual){echo"aequalsb";}else{echo"adoesnotequalb";}//由于$a是1,$b是2,所以輸出adoesnotequalb數(shù)據(jù)類型的轉(zhuǎn)換PART05在PHP中,當(dāng)運算涉及不同數(shù)據(jù)類型的數(shù)據(jù)時,為了確保操作的正確性,經(jīng)常需要將數(shù)據(jù)類型統(tǒng)一。這就涉及數(shù)據(jù)類型的轉(zhuǎn)換。數(shù)據(jù)類型轉(zhuǎn)換主要分為自動類型轉(zhuǎn)換和強制類型轉(zhuǎn)換。2.5數(shù)據(jù)類型的轉(zhuǎn)換自動類型轉(zhuǎn)換又稱為隱式類型轉(zhuǎn)換,是指當(dāng)參與運算的兩個數(shù)據(jù)的類型不同時,PHP會自動將其轉(zhuǎn)換成相同類型的數(shù)據(jù)再進(jìn)行與運算。常見的自動類型轉(zhuǎn)換有3種。1.自動轉(zhuǎn)換成布爾型標(biāo)量數(shù)據(jù)類型(整型數(shù)據(jù)、浮點型數(shù)據(jù)、字符串?dāng)?shù)據(jù))在需要時可以被自動轉(zhuǎn)換成布爾型數(shù)據(jù)。當(dāng)使用比較運算符“==”進(jìn)行比較時,如果兩側(cè)的數(shù)據(jù)類型不同,其中一側(cè)是布爾型數(shù)據(jù),那么另一側(cè)會被自動轉(zhuǎn)換成布爾型數(shù)據(jù)以進(jìn)行比較。2.5.1自動類型轉(zhuǎn)換var_dump(0==false);//輸出bool(true),因為整型數(shù)據(jù)0被自動轉(zhuǎn)換為布爾型數(shù)據(jù)falsevar_dump('0'==false);//輸出bool(true),字符串'0'也被視為falsevar_dump(0.0==false);//輸出bool(true),因為浮點型數(shù)據(jù)0.0被自動轉(zhuǎn)換為布爾型數(shù)據(jù)falsevar_dump(''==false);//輸出bool(true),空字符串被轉(zhuǎn)換為falsevar_dump(2==false);//輸出bool(false),非零整數(shù)被視為truevar_dump('Hello'==false);//輸出bool(false),非空非零字符串被視為true2.自動轉(zhuǎn)換成整型在標(biāo)量數(shù)據(jù)類型中,浮點型自動轉(zhuǎn)換成整型時,會向下取整;布爾型轉(zhuǎn)換成整型時,布爾值false會轉(zhuǎn)換成整型數(shù)據(jù)0,布爾值true則會轉(zhuǎn)換成整型數(shù)據(jù)1;字符串型轉(zhuǎn)換成整型時,若字符串以數(shù)字開頭,則轉(zhuǎn)換成整型的對應(yīng)數(shù)值。2.5.1自動類型轉(zhuǎn)換var_dump(true+1); //輸出int(2)var_dump(false+1); //輸出int(1)var_dump('Hello'+1); //輸出int(1),因為'Hello'被轉(zhuǎn)換為03.自動轉(zhuǎn)換成字符串型整型和浮點型轉(zhuǎn)換成字符串型時,會直接將數(shù)字轉(zhuǎn)換成字符串形式;布爾型轉(zhuǎn)換成字符串型時,布爾值false會轉(zhuǎn)換成字符串1,布爾值0會轉(zhuǎn)換成字符串0。2.5.1自動類型轉(zhuǎn)換echo'false被轉(zhuǎn)換成字符串后:'.false; //輸出false被轉(zhuǎn)換成字符串后:0echo'true被轉(zhuǎn)換成字符串后:'.true; //輸出true被轉(zhuǎn)換成字符串后:1var_dump(1.'Hello'); //輸出string(6)"1Hello"var_dump(1.23.'Hello'); //輸出string(9)"1.23Hello"強制類型轉(zhuǎn)換,也稱為顯式類型轉(zhuǎn)換,是指將一種數(shù)據(jù)類型轉(zhuǎn)換成另一種需要的數(shù)據(jù)類型,不需要考慮自動類型轉(zhuǎn)換的情況。常見的類型轉(zhuǎn)換運算符及其對應(yīng)的轉(zhuǎn)換類型如下表所示。2.5.2強制類型轉(zhuǎn)換在進(jìn)行布爾型的強制轉(zhuǎn)換時,null、0和未賦值的變量或數(shù)組會被轉(zhuǎn)換成false,其他被轉(zhuǎn)換成true。在進(jìn)行整型的強制轉(zhuǎn)換時,應(yīng)遵循以下轉(zhuǎn)換規(guī)?則。

布爾值false轉(zhuǎn)換成0,true轉(zhuǎn)換成1。

浮點型數(shù)據(jù)的小數(shù)部分被舍去,保留整數(shù)部?分。

字符串如果以數(shù)字開頭,則截取到非數(shù)字位,如果數(shù)字中含有小數(shù)點,則截取到小數(shù)點前,否則轉(zhuǎn)換為0。在進(jìn)行浮點型的強制轉(zhuǎn)換時,應(yīng)遵循以下轉(zhuǎn)換規(guī)?則。

布爾值false轉(zhuǎn)換成0.0,true轉(zhuǎn)換成1.0。

浮點型數(shù)據(jù)數(shù)據(jù)的小數(shù)部分被舍去,保留整數(shù)部?分。

字符串如果以數(shù)字開頭,則截取到非數(shù)字位,如果數(shù)字中含有小數(shù)點,則截取到小數(shù)點前,否則轉(zhuǎn)換為0。2.5.2強制類型轉(zhuǎn)換為構(gòu)建智能BMI計算與健身運動推薦系統(tǒng),我們需要實現(xiàn)以下核心功能:學(xué)生的基本信息會被保留并顯示在頁面上;根據(jù)BMI的計算公式,計算學(xué)生的BMI;根據(jù)BMI,分析當(dāng)前學(xué)生的體重屬于過輕、正常還是過重,并推薦合適的體育健身運動。經(jīng)過分析,我們可以使用變量、常量、運算符和表達(dá)式等基本語法來實現(xiàn)BMI計算器。任務(wù)2-1計算BMI指定學(xué)生信息(王小明,22歲,網(wǎng)絡(luò)1班,1.80m,88kg),縮寫php文件實現(xiàn)學(xué)生BMI的計算。<?php//定義學(xué)生基本信息

$name='王小明';$age=22;$className='網(wǎng)絡(luò)1班';$height=1.80;$weight=88;//省略輸出學(xué)生信息

//計算并輸出BMI

$bmi=$weight/pow($height,2);//使用pow()函數(shù)進(jìn)行冪運算,提高代碼可讀性

echo"計算得到學(xué)生的BMI:{$bmi}<br>";任務(wù)2-2實現(xiàn)健身運動推薦根據(jù)BMI的范圍判斷學(xué)生體重狀況(過輕、正常、過重);根據(jù)學(xué)生的體重狀況,提供相應(yīng)的運動建議;將判斷結(jié)果和建議顯示到頁面上。//判斷學(xué)生體重狀況并推薦健身運動$result=$bmi>=18.5

&&$bmi<=25

?"體重正常,適當(dāng)運動即可"

:($bmi<18.5

?"體重過輕,需要進(jìn)行增肌類健身運動"

:"體重過重,建議進(jìn)行減脂類有氧運動");echo$result;圖書信息的定義及管理【實訓(xùn)目的】寫PHP程序的基本操作,實現(xiàn)圖書信息的定義及管理,同時計算圖書的折舊和凈值,并將全部信息顯示出來。【實訓(xùn)內(nèi)容】實現(xiàn)如下圖所示的效果。本項目通過實現(xiàn)智能BMI計算與健身運動推薦系統(tǒng),幫助讀者認(rèn)識了PHP的語法基礎(chǔ)和概念,如標(biāo)識符和關(guān)鍵字、常量和變量、數(shù)據(jù)類型、運算符和表達(dá)式等。項目2知識點如下圖所示。防范跨站腳本攻擊跨站腳本攻擊的主要原因是網(wǎng)站對用戶提交的數(shù)據(jù)過濾不嚴(yán)格,導(dǎo)致攻擊者能夠插入惡意腳本。以下措施可以防范跨站腳本攻擊。1.輸入驗證:對用戶輸入的內(nèi)容進(jìn)行嚴(yán)格的驗證,確保輸入內(nèi)容符合預(yù)期格式,過濾或轉(zhuǎn)義特殊字符。2.輸出編碼:對輸出內(nèi)容進(jìn)行編碼,確保任何在HTML、JavaScript或其他上下文中插入的特殊字符都被適當(dāng)轉(zhuǎn)義。3.使用HTTP響應(yīng)頭:設(shè)置Content-Security-Policy(內(nèi)容安全策略)頭,限制資源加載和上下文執(zhí)行;設(shè)置X-Content-Type-Options為nosniff,阻止瀏覽器嘗試猜測和解釋非正確聲明的內(nèi)容類型。4.使用安全的編程實踐方法:避免使用document.write或innerHTML來操作DOM,這些方法容易受到基于DOM的跨站腳本攻擊;利用現(xiàn)代框架和庫提供的自動轉(zhuǎn)義功能,通常

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論